
Общая формула
(=TEXTJOIN(", ",TRUE,IF(dates>=start,IF(dates<=end,holidays,""),"")))
Резюме
Чтобы перечислить праздники, которые происходят между двумя датами, вы можете использовать формулу, основанную на функциях TEXTJOIN и IF.
В показанном примере формула в F8:
(=TEXTJOIN(", ",TRUE,IF(B4:B12>=F5,IF(B4:B12<=F6,C4:C12,""),"")))
Это формула массива, которую необходимо вводить с помощью Ctrl + Shift + Enter.
Объяснение
На высоком уровне эта формула использует вложенную функцию ЕСЛИ для возврата массива праздников между двумя датами. Затем этот массив обрабатывается функцией TEXTJOIN, которая преобразует массив в текст, используя запятую в качестве разделителя.
Работая изнутри, мы генерируем массив совпадающих праздников, используя вложенный IF:
IF(B4:B12>=F5,IF(B4:B12<=F6,C4:C12,""),"")
Если даты в B4: B12 больше или равны дате начала в F5, и если даты в B4: B12 меньше или равны дате окончания в F6, то IF возвращает массив праздников. В показанном примере список выглядит так:
(""; ""; "День президентов"; "День памяти"; ""; ""; ""; ""; "")
Затем этот массив доставляется в функцию TEXTJOIN как аргумент text1 , где разделитель установлен в "," и ignore_empty имеет значение TRUE. Функция TEXT JOIN обрабатывает элементы в массиве и возвращает строку, в которой каждый непустой элемент разделен запятой и пробелом.
Примечание. Функция ОБЪЕДИНЕНИЕ - это новая функция, доступная в Office 365 и Excel 2019.