Страницы: 1
RSS
Как найти день рождение в будущем?
 
Здравствуйте
Все клиенты зарегистрированы по номеру телефона (Таблица CBD).
Если у клиента или у одного из его детей день рождения сегодня или с его дня рождения не прошло более 7 дней, то дата его рождения должна отображаться в ячейке H6.
Если такой даты для данного номера телефона (ячейка H2) нет, то должна быть выведена дата ближайшего в этом году дня рождения, зарегистрированного для этого номера телефона.
Если такой даты нет, то в ячейке H6 должен выходить текст "Вставь дату рождения".
В написанной мной формуле, если для указанного в H2 номера телефона в этом году нет даты рождения после сегодняшней выходит дата рождения зарегистрированная за другим номером.
Помогите, пожалуйста, исправить формулу.
 
DanKZ,  проверяйте =IFERROR(IFERROR(AGGREGATE(15;6;P2:P6/((M2:M6=H2)*(DATEDIF(P2:P6;TODAY();"yd")<=7));1);AGGREGATE(15;6;P2:P6/((M2:M6=H2)*(TODAY()<DATE(YEAR(TODAY());MONTH(P2:P6);DAY(P2:P6))));1));"Введите дату")
 
Первое условие бесполезно? Вариант (Excel 2021+):
Код
=LET(r; ABS(СЕГОДНЯ()-ТЕКСТ(CBD[Дата рождения];"Д.М")); ПРОСМОТРX(1;(r=МИН(r))*(CBD[Телефон]=H2);CBD[Дата рождения];"Вставь дату рождения"))
Изменено: Serg091 - 30.03.2024 23:42:18
 
Цитата
DanKZ написал:
то должна быть выведена дата ближайшего в этом году дня рождения, зарегистрированного для этого номера телефона.
что значит ближайшая?
Реально ближайшая, или ближайшая что будет, а такой может не быть при условии что в этом году.
По вопросам из тем форума, личку не читаю.
 
Цитата
bigorq написал:
DanKZ ,  проверяйте

Проверил. Работает. Благодарю.
А для того, чтобы при отсутствии после сегодняшнего дня даты рождения в текущем году, чтобы выходили даты рождения в будущем году, надо еще одну вкладку с IFERROR вставить?
 
Цитата
БМВ написал:
что значит ближайшая? Реально ближайшая, или ближайшая что будет, а такой может не быть при условии что в этом году.

Имелось ввиду любая дата начиная с завтрашнего дня до конца года. Да, такой даты может и не быть, но хотел, чтобы операторы видели дату рождения клиента и если она в ближайшем будущем, то напоминали про акцию на день рождения. Но потом понял, что при такой постановке вопроса люди родившиеся в начале января попадали в "слепую зону".
 
Цитата
DanKZ написал:
надо еще одну вкладку с IFERROR вставить?
можете прописать условие вместо "Введите дату", а для нее, если нужна, еще одну iferror
 
=IFERROR(IFERROR(AGGREGATE(15;6;P2:P6/((M2:M6=H2)*(DATEDIF(P2:P6;TODAY();"yd")<=7));1);AGGREGATE(15;6;P2:P6/((M2:M6=H2)*(TODAY()<DATE(YEAR(TODAY());MONTH(P2:P6);DAY(P2:P6))));1));AGGREGATE(15;6;P2:P6/((M2:M6=H2)*(TODAY()>DATE(YEAR(TODAY());MONTH(P2:P6);DAY(P2:P6))));1));"Введите дату")

Добавил еще одно условие, чтобы проверялись и даты после НГ. Вдруг кому пригодится.
 
Цитата
ближайшего в этом году
думаю это лишнее
=ИНДЕКС(CBD[Дата рождения];ОКРУГЛ(ОСТАТ(АГРЕГАТ(15;6;EXP(LN((ТЕКСТ(CBD[Дата рождения];"Д.М.")&{0;1}+ГОД(H1-7))+CBD[№]%%-H1+8))/(CBD[Телефон]=H2);1);1)/1%%;))
Страницы: 1
Наверх