Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Поиск ближайшей даты при условии дополнительного критерия - Мир MS Excel

Старая форма входа
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: китин, _Boroda_  
Поиск ближайшей даты при условии дополнительного критерия
ShagiDasha Дата: Вторник, 28.11.2017, 22:56 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый вечер дорогие форумчане! Слезно прошу о помощи. Ибо собственных знаний не хватило для выполнения нижеописанной задачи.
Пробовала и
Код
=ИНДЕКС(A7:A51;ПОИСКПОЗ(МАКС(ЕСЛИ(A7:A51<=D1;A7:A51;""));$A$7:$A$51;0);1)
и
Код
=ИНДЕКС(A7:A51;ПОИСКПОЗ(МИН(ЕСЛИ(A7:A51>=D1;A7:A51;""));$A$7:$A$51;0);1)
и
Код
=ЕСЛИ(A7:A51<>"";ЕСЛИ(B7:B51="";D9;D10);"")
. Но это все не помогает сделать привязку к отметке "да" (ниже будет понятно к чему это).
Есть такая задача:
В первом столбце имеется список дат (который постепенно может дополняться (вниз)). Каждая из этих дат обозначает крайний период подачи справки в налоговую. Во втором столбце напротив даты ставится пометка "да" если справка подана и пусто, если справка еще не подана. Также имеется дата "сегодня", которая прописана формулой СЕГОДНЯ().

Нужно в отдельную ячейку выводить ближайшую (ближайшую к дате "сегодня") дату подачи справки из первого столбца, учитывая все предыдущие даты по которым уже есть пометка "да" (т.е. справка уже подана).
К сообщению приложен файл: _3.xls (24.0 Kb)


Сообщение отредактировал ShagiDasha - Среда, 29.11.2017, 09:32
 
Ответить
СообщениеДобрый вечер дорогие форумчане! Слезно прошу о помощи. Ибо собственных знаний не хватило для выполнения нижеописанной задачи.
Пробовала и
Код
=ИНДЕКС(A7:A51;ПОИСКПОЗ(МАКС(ЕСЛИ(A7:A51<=D1;A7:A51;""));$A$7:$A$51;0);1)
и
Код
=ИНДЕКС(A7:A51;ПОИСКПОЗ(МИН(ЕСЛИ(A7:A51>=D1;A7:A51;""));$A$7:$A$51;0);1)
и
Код
=ЕСЛИ(A7:A51<>"";ЕСЛИ(B7:B51="";D9;D10);"")
. Но это все не помогает сделать привязку к отметке "да" (ниже будет понятно к чему это).
Есть такая задача:
В первом столбце имеется список дат (который постепенно может дополняться (вниз)). Каждая из этих дат обозначает крайний период подачи справки в налоговую. Во втором столбце напротив даты ставится пометка "да" если справка подана и пусто, если справка еще не подана. Также имеется дата "сегодня", которая прописана формулой СЕГОДНЯ().

Нужно в отдельную ячейку выводить ближайшую (ближайшую к дате "сегодня") дату подачи справки из первого столбца, учитывая все предыдущие даты по которым уже есть пометка "да" (т.е. справка уже подана).

Автор - ShagiDasha
Дата добавления - 28.11.2017 в 22:56
buchlotnik Дата: Вторник, 28.11.2017, 23:00 | Сообщение № 2
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
ShagiDasha, оформите формулы тегами (кнопка fx)
 
Ответить
СообщениеShagiDasha, оформите формулы тегами (кнопка fx)

Автор - buchlotnik
Дата добавления - 28.11.2017 в 23:00
sboy Дата: Среда, 29.11.2017, 09:46 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
Добрый день.
Если правильно понял
1 вариант
Код
=ИНДЕКС(A5:A7;ПОИСКПОЗ("да";B5:B7;)+1)

2 вариант
Код
=ПРОСМОТР("я";B5:B8;A6:A9)
К сообщению приложен файл: 0025087.xlsx (10.0 Kb)


Яндекс: 410016850021169
 
Ответить
СообщениеДобрый день.
Если правильно понял
1 вариант
Код
=ИНДЕКС(A5:A7;ПОИСКПОЗ("да";B5:B7;)+1)

2 вариант
Код
=ПРОСМОТР("я";B5:B8;A6:A9)

Автор - sboy
Дата добавления - 29.11.2017 в 09:46
_Boroda_ Дата: Среда, 29.11.2017, 10:02 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 16711
Репутация: 6502 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
На случай, если даты не отсортированы
Формула массива. Вводится одновременным нажатием Ctrl+Shift+Enter
Код
=МАКС((B5:B7="да")*A5:A7)

Обычная формула
Код
=МАКС(ИНДЕКС((B5:B7="да")*A5:A7;))

В обоих случаях формат ячейки
ДД.ММ.ГГГГ;;
К сообщению приложен файл: _3-1-1.xlsx (12.3 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеНа случай, если даты не отсортированы
Формула массива. Вводится одновременным нажатием Ctrl+Shift+Enter
Код
=МАКС((B5:B7="да")*A5:A7)

Обычная формула
Код
=МАКС(ИНДЕКС((B5:B7="да")*A5:A7;))

В обоих случаях формат ячейки
ДД.ММ.ГГГГ;;

Автор - _Boroda_
Дата добавления - 29.11.2017 в 10:02
ShagiDasha Дата: Среда, 29.11.2017, 10:22 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
sboy,
Добрый день. Спасибо за ответ.
Но первый вариант у меня не работает. Когда ставишь да в ячейку В6 дата остается по-прежнему 19/12/2017, хотя она должна поменяться на 28/01/2018.
А второй вариант работает, но есть один момент, у вас в формуле выбраны диапазоны фиксированные и по столбцу B и по столбцу A. А даты то будут добавляться, и отметки тоже. Получается что если добавлять даты в нижние строки, то уже не работает(
Может быть мне нужно изначально в формуле выбирать более широкий диапазон по нумерации строк вниз?


Сообщение отредактировал ShagiDasha - Среда, 29.11.2017, 10:37
 
Ответить
Сообщениеsboy,
Добрый день. Спасибо за ответ.
Но первый вариант у меня не работает. Когда ставишь да в ячейку В6 дата остается по-прежнему 19/12/2017, хотя она должна поменяться на 28/01/2018.
А второй вариант работает, но есть один момент, у вас в формуле выбраны диапазоны фиксированные и по столбцу B и по столбцу A. А даты то будут добавляться, и отметки тоже. Получается что если добавлять даты в нижние строки, то уже не работает(
Может быть мне нужно изначально в формуле выбирать более широкий диапазон по нумерации строк вниз?

Автор - ShagiDasha
Дата добавления - 29.11.2017 в 10:22
ShagiDasha Дата: Среда, 29.11.2017, 10:26 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
_Boroda_, спасибо за ответ.
Но друзья, получается что формулы работают только в случае примера с тремя датами. А в условии задачи предполагается, что даты будут добавляться, и получается если добавить дату на 8 и 9ю строки (а будут добавляться и дальше), то формула перестает работать(
 
Ответить
Сообщение_Boroda_, спасибо за ответ.
Но друзья, получается что формулы работают только в случае примера с тремя датами. А в условии задачи предполагается, что даты будут добавляться, и получается если добавить дату на 8 и 9ю строки (а будут добавляться и дальше), то формула перестает работать(

Автор - ShagiDasha
Дата добавления - 29.11.2017 в 10:26
ShagiDasha Дата: Среда, 29.11.2017, 10:27 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Либо мне изначально нужно выбирать просто больший диапазон вниз по обоим столбцам?
 
Ответить
СообщениеЛибо мне изначально нужно выбирать просто больший диапазон вниз по обоим столбцам?

Автор - ShagiDasha
Дата добавления - 29.11.2017 в 10:27
sboy Дата: Среда, 29.11.2017, 10:29 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
ответила в личные сообщения

это нарушение правил форума)

по вопросу: либо больший диапазон, либо приложите пример с реальной структурой данных


Яндекс: 410016850021169
 
Ответить
Сообщение
ответила в личные сообщения

это нарушение правил форума)

по вопросу: либо больший диапазон, либо приложите пример с реальной структурой данных

Автор - sboy
Дата добавления - 29.11.2017 в 10:29
_Boroda_ Дата: Среда, 29.11.2017, 10:35 | Сообщение № 9
Группа: Админы
Ранг: Местный житель
Сообщений: 16711
Репутация: 6502 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
ответила в личные сообщения

Зачем? Решать вопросы нужно здесь. Прочитайте Правила форама
А в условии задачи предполагается
Решения были написаны согласно Вашего примера.
И похоже мы неверно поняли задачу. Вам нужно видеть дату из тех заявок, которые еще не поданы? Причем не просто ближайшую, а ближайшую, но большую сегодняшней? Или любую ближайшую? Но тогда возникает вопрос - если сегодня (29.11.2017) в таблице не поданы заявки от 25.11.17 и от 01.11.17, то ближайшая дата 25.11.17. А что делать с 01.11.17?


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
ответила в личные сообщения

Зачем? Решать вопросы нужно здесь. Прочитайте Правила форама
А в условии задачи предполагается
Решения были написаны согласно Вашего примера.
И похоже мы неверно поняли задачу. Вам нужно видеть дату из тех заявок, которые еще не поданы? Причем не просто ближайшую, а ближайшую, но большую сегодняшней? Или любую ближайшую? Но тогда возникает вопрос - если сегодня (29.11.2017) в таблице не поданы заявки от 25.11.17 и от 01.11.17, то ближайшая дата 25.11.17. А что делать с 01.11.17?

Автор - _Boroda_
Дата добавления - 29.11.2017 в 10:35
ShagiDasha Дата: Среда, 29.11.2017, 10:59 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
_Boroda_, На практике ситуации, когда сегодня 29/11/17 а справка не подана ни до 1/11/17 ни до 25/1/17 не будет, поэтому такой вариант не рассматриваем. Он теоретически может быть, но практически не будет.

Вам нужно видеть дату из тех заявок, которые еще не поданы?

Да, нужно видеть дату, по которой справка еще не подана. И эта дата должна быть следующей от последней даты, по которой была подана справка.
Так понятно? Т.е. в нашем примере, 20.11.2017 подана справка, а по следующим двум другим 19.12.2017 и 28.01.2018 не подана, так вот нужно выводить именно дату 19.12.2017, а не 28.01.2018, потому что эта дата наступит раньше, и соответственно риск не подать справку возникает раньше.
Надеюсь что объяснила.
 
Ответить
Сообщение_Boroda_, На практике ситуации, когда сегодня 29/11/17 а справка не подана ни до 1/11/17 ни до 25/1/17 не будет, поэтому такой вариант не рассматриваем. Он теоретически может быть, но практически не будет.

Вам нужно видеть дату из тех заявок, которые еще не поданы?

Да, нужно видеть дату, по которой справка еще не подана. И эта дата должна быть следующей от последней даты, по которой была подана справка.
Так понятно? Т.е. в нашем примере, 20.11.2017 подана справка, а по следующим двум другим 19.12.2017 и 28.01.2018 не подана, так вот нужно выводить именно дату 19.12.2017, а не 28.01.2018, потому что эта дата наступит раньше, и соответственно риск не подать справку возникает раньше.
Надеюсь что объяснила.

Автор - ShagiDasha
Дата добавления - 29.11.2017 в 10:59
ShagiDasha Дата: Среда, 29.11.2017, 11:02 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
sboy,
по вопросу: либо больший диапазон, либо приложите пример с реальной структурой данных

в описании задачи я и написала:
В первом столбце имеется список дат (который постепенно может дополняться (вниз))
 
Ответить
Сообщениеsboy,
по вопросу: либо больший диапазон, либо приложите пример с реальной структурой данных

в описании задачи я и написала:
В первом столбце имеется список дат (который постепенно может дополняться (вниз))

Автор - ShagiDasha
Дата добавления - 29.11.2017 в 11:02
Che79 Дата: Среда, 29.11.2017, 11:13 | Сообщение № 12
Группа: Друзья
Ранг: Старожил
Сообщений: 1649
Репутация: 306 ±
Замечаний: 0% ±

2013 Win, 365 Mac
ShagiDasha, здравствуйте. Может, так нужно? Формула массива
Код
{=МИН(ЕСЛИ((B5:B7<>"да")*(A5:A7>=СЕГОДНЯ());A5:A7))}
И посмотрите в файле Лист_2. Там более общий случай. Даты генерятся случайным образом. Поиграйтесь через F9. Нужная дата в ячейке С4 + покраска через УФ.
К сообщению приложен файл: 614285.xlsx (11.6 Kb)


Делай нормально и будет нормально!
 
Ответить
СообщениеShagiDasha, здравствуйте. Может, так нужно? Формула массива
Код
{=МИН(ЕСЛИ((B5:B7<>"да")*(A5:A7>=СЕГОДНЯ());A5:A7))}
И посмотрите в файле Лист_2. Там более общий случай. Даты генерятся случайным образом. Поиграйтесь через F9. Нужная дата в ячейке С4 + покраска через УФ.

Автор - Che79
Дата добавления - 29.11.2017 в 11:13
_Boroda_ Дата: Среда, 29.11.2017, 11:14 | Сообщение № 13
Группа: Админы
Ранг: Местный житель
Сообщений: 16711
Репутация: 6502 ±
Замечаний: ±

2003; 2007; 2010; 2013 RUS
Тогда Вам почти подходит формула Сергея
=ПРОСМОТР("я";B5:B8;A6:A9)

Почти потому, что там нужно еще шапку захватить - на случай, если "да" вообще в таблице пока нет
Код
=ПРОСМОТР("я";B4:B998;A5:A999)
К сообщению приложен файл: _3-1-2.xlsx (12.3 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеТогда Вам почти подходит формула Сергея
=ПРОСМОТР("я";B5:B8;A6:A9)

Почти потому, что там нужно еще шапку захватить - на случай, если "да" вообще в таблице пока нет
Код
=ПРОСМОТР("я";B4:B998;A5:A999)

Автор - _Boroda_
Дата добавления - 29.11.2017 в 11:14
ShagiDasha Дата: Среда, 29.11.2017, 12:04 | Сообщение № 14
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
_Boroda_,
Вот здесь я еще раз перепроверила, не сработала ни первая ни вторая формула.
Отметки да стоят на 20.11.2017 и 19.08.2017 датах, а формула показывает 20.11.2017 дату. А должна 28.01.2018
А вот
Код
=ПРОСМОТР("я";B4:B998;A5:A999)
работает. И с шапкой и с бесконечным кол-вом строк хорошо все продумано. Спасибо большое
 
Ответить
Сообщение_Boroda_,
Вот здесь я еще раз перепроверила, не сработала ни первая ни вторая формула.
Отметки да стоят на 20.11.2017 и 19.08.2017 датах, а формула показывает 20.11.2017 дату. А должна 28.01.2018
А вот
Код
=ПРОСМОТР("я";B4:B998;A5:A999)
работает. И с шапкой и с бесконечным кол-вом строк хорошо все продумано. Спасибо большое

Автор - ShagiDasha
Дата добавления - 29.11.2017 в 12:04
ShagiDasha Дата: Среда, 29.11.2017, 12:09 | Сообщение № 15
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Che79, Спасибо за ответ. Со случайным генератором дат я не совсем разобралась...Оно работает, но на практике применить пока не понимаю как. А вот на первом листе формула
Код
=МИН(ЕСЛИ((B5:B9<>"да")*(A5:A9>=СЕГОДНЯ());A5:A9))
тоже работает, только я буду добавлять диапазон, т.к. даты будут добавляться. Спасибо за решение
 
Ответить
СообщениеChe79, Спасибо за ответ. Со случайным генератором дат я не совсем разобралась...Оно работает, но на практике применить пока не понимаю как. А вот на первом листе формула
Код
=МИН(ЕСЛИ((B5:B9<>"да")*(A5:A9>=СЕГОДНЯ());A5:A9))
тоже работает, только я буду добавлять диапазон, т.к. даты будут добавляться. Спасибо за решение

Автор - ShagiDasha
Дата добавления - 29.11.2017 в 12:09
Che79 Дата: Среда, 29.11.2017, 12:17 | Сообщение № 16
Группа: Друзья
Ранг: Старожил
Сообщений: 1649
Репутация: 306 ±
Замечаний: 0% ±

2013 Win, 365 Mac
буду добавлять диапазон
тогда, по аналогии с формулами от коллег выше, сделайте его с запасом
Код
=МИН(ЕСЛИ((B5:B1000<>"да")*(A5:A1000>=СЕГОДНЯ());A5:A1000))
Про генератор случайных дат - это просто пример на большом количестве строк, когда даты не отсортированы и пометка "да" может стоять на любой дате, большей, чем, например завтрашняя + учитывается случай, когда на всех датах стоит пометка "да", тогда нужная дата просто не находится.


Делай нормально и будет нормально!
 
Ответить
Сообщение
буду добавлять диапазон
тогда, по аналогии с формулами от коллег выше, сделайте его с запасом
Код
=МИН(ЕСЛИ((B5:B1000<>"да")*(A5:A1000>=СЕГОДНЯ());A5:A1000))
Про генератор случайных дат - это просто пример на большом количестве строк, когда даты не отсортированы и пометка "да" может стоять на любой дате, большей, чем, например завтрашняя + учитывается случай, когда на всех датах стоит пометка "да", тогда нужная дата просто не находится.

Автор - Che79
Дата добавления - 29.11.2017 в 12:17
ShagiDasha Дата: Среда, 29.11.2017, 14:00 | Сообщение № 17
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
ShagiDasha, Я извиняюсь...может глупо прозвучит вопрос, вот попробовала разобраться с сутью формулы просмотр, и не поняла....не поняла почему первый аргумент стоит "я"....это же искомое значение...а я не понимаю....мы ищем пустое значение? почему "я"....
 
Ответить
СообщениеShagiDasha, Я извиняюсь...может глупо прозвучит вопрос, вот попробовала разобраться с сутью формулы просмотр, и не поняла....не поняла почему первый аргумент стоит "я"....это же искомое значение...а я не понимаю....мы ищем пустое значение? почему "я"....

Автор - ShagiDasha
Дата добавления - 29.11.2017 в 14:00
sboy Дата: Среда, 29.11.2017, 14:08 | Сообщение № 18
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
ShagiDasha, Тут хорошо описано


Яндекс: 410016850021169
 
Ответить
СообщениеShagiDasha, Тут хорошо описано

Автор - sboy
Дата добавления - 29.11.2017 в 14:08
ShagiDasha Дата: Среда, 29.11.2017, 14:16 | Сообщение № 19
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
sboy, Спасибо))
 
Ответить
Сообщениеsboy, Спасибо))

Автор - ShagiDasha
Дата добавления - 29.11.2017 в 14:16
ShagiDasha Дата: Четверг, 30.11.2017, 10:32 | Сообщение № 20
Группа: Пользователи
Ранг: Новичок
Сообщений: 18
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
sboy, Посмотрела разбор формулы ПРОСМОТР. И вопросов стало еще больше(
Общий случай который там разбирается (с числами и текстом) вообще не понятен. Откуда берется выражение 1/(A:A<>''"). Почему не берется просто 1....
Кто может объяснить...? В ютубе тоже не нашла. Или нужно создать новую тему?
 
Ответить
Сообщениеsboy, Посмотрела разбор формулы ПРОСМОТР. И вопросов стало еще больше(
Общий случай который там разбирается (с числами и текстом) вообще не понятен. Откуда берется выражение 1/(A:A<>''"). Почему не берется просто 1....
Кто может объяснить...? В ютубе тоже не нашла. Или нужно создать новую тему?

Автор - ShagiDasha
Дата добавления - 30.11.2017 в 10:32
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!