Страницы: 1
RSS
Вхождение массива дат в период с дополнительным условием.
 
Приветствую уважаемые знатоки Excel.
Появилась задача визуально отобразить по неделям, занят сотрудник или нет.
Что есть:
Таблица с ФИО и датами начала и окончания периода (периодов может быть несколько)
Таблица с ФИО и периодами в которой нужно отобразить пересечение, (период задан как название столбца. например 06.01 - 12.01)
Нужно Проверить что даты начала и конца периода по сотруднику из первой таблицы пересекаются с периодом (название столбца) во второй таблице, если да, то проставить любой признак (число/ буква/ булево значение)

За основу взял функцию СЧЕТЕСЛИМН, но получил проблему:
Если проверяем ФИО и дату по 1му столбцу - работает
Если НЕ проверяем ФИО и смотрим даты в нескольких столбцах - работает
Если проверять одновременно ФИО и даты по нескольким столбцам - не работает.

Почему не сделать несколько проверок если вариант с ФИО и 1м столбцом работает? На каждый период нужно делать 3 проверки, периодов может быть больше 5. Получается большая и сложная формула, которую трудно актуализировать.

Приложил файл с примером, где постарался подробно описать проблему.
 
=SUMPRODUCT(--((($F43:$G43+(RIGHT(K$42;5)&"/2025")-ABS($F43:$G43-(RIGHT(K$42;5)&"/2025")))/2-($C43:$D43+(LEFT(K$42;5)&"/2025")+ABS($C43:$D43-(LEFT(K$42;5)&"/2025")))/2)>0))

Если порядок фамилий иной, то нужно часть $F43:$G43 и $C43:$D43 заменить

=SUMPRODUCT(--(((INDEX($F$51:$G$53;MATCH($J51;$B$51:$B$53;);)+(RIGHT(K$50;5)&"/2025")-ABS(INDEX($F$51:$G$53;MATCH($J51;$B$51:$B$53;);)-(RIGHT(K$50;5)&"/2025")))/2-(INDEX($C$51:$D$53;MATCH($J51;$B$51:$B$53;);)+(LEFT(K$50;5)&"/2025")+ABS(INDEX($C$51:$D$53;MATCH($J51;$B$51:$B$53;);)-(LEFT(K$50;5)&"/2025")))/2)>0))
По вопросам из тем форума, личку не читаю.
 
БМВ,
Спасибо, то что нужно.
Удалось отредактировать для работы с умными таблицами.
Единственно 5 периодов на количество недель в году нагружают документ расчетами (примерно 5 сек), но так как частого пересчета не требуется, решение вполне подходит.
P.S. Использовал второй вариант т.к. нет гарантии что порядок фамилий будет всегда идентичен.
 
Petr_411, Как вариант - проверять не даты, а недели.
Тем более что в примере у Ивана даты напутаны, но в одну неделю дата начала попадает. Но формулы метку не ставят...
Для облегчения себе любимому я бы во второй таблице вывел где-то номера этих недель.
 
Я перебдел
так проще
=SUMPRODUCT(((INDEX($C$51:$D$53;MATCH($J51;$B$51:$B$53;);)<=--(RIGHT(K$42;5)&"/2025"))*(INDEX($F$51:$G$53;MATCH($J51;$B$51:$B$53;);)>=--(LEFT(K$42;5)&"/2025"))))
По вопросам из тем форума, личку не читаю.
Страницы: 1
Читают тему
Наверх