Как проверить, попадает ли какой-либо день данной недели в диапазон интервалов дат - PullRequest
0 голосов
/ 08 апреля 2020

У меня есть лист (1), где ячейки заголовков столбцов содержат номера недель и даты понедельников для каждой недели. Тогда у меня есть еще один лист (2) оговорок. Мне нужно создать представление резервирования для листа 1, где каждая ячейка каждой строки ресурса проверяет данные из листа 2, если в любой день текущей недели достигает любого резервирования из листа 2 и возвращает число для этой ячейки (для целей форматирования № 1 в примере ниже). На листе 2 есть несколько строк для каждого уникального ресурса, поэтому я не смог использовать VLOOKUP, поскольку он возвращает только первое вхождение.

Эти числа 1,2,3,4 ... на листе 1 - неделя ISO номера 1-53.

Лист 1:

enter image description here

Лист 2:

enter image description here

Я пытался приблизиться к этому с IF / AND / VLOOKUP, но безуспешно ... =IF(AND(D$7>=VLOOKUP(B9;gantt_data!$A$3:$E$52;4;FALSE);D$7<=VLOOKUP(B9;gantt_data!$A$3:$E$52;5;FALSE);;);1;)

Спасибо за помощь уже!

Ответы [ 2 ]

1 голос
/ 08 апреля 2020

Вы можете попробовать SUMPRODUCT функцию:

=IFERROR(1/SUMPRODUCT(($B4=$A$16:$A$24)*((DATEVALUE(C$2 & C$1)+7)>=$C$16:$C$24)*(DATEVALUE(C$2 & C$1)<$D$16:$D$24));"")

enter image description here

0 голосов
/ 08 апреля 2020

Я верю, что простые COUNIFS сделают эту работу. Пожалуйста, попробуйте эту формулу. Вставьте его в ячейку B9 вашего стола на Листе 1 и скопируйте его оттуда вправо и вниз по мере необходимости.

=COUNTIFS(Table1[Task Name],$A10,Table1[Reservation start],"<=" & B$7,Table1[Reservation end],">" & B$7+7)

Обратите внимание, что я предположил, что ваш Лист2 содержит Таблицу1. Пожалуйста, замените диапазон другим именем, если диапазон Table1 не содержит DataBodyRange вашей таблицы на Sheet2. Чтобы не видеть все нули, отформатируйте ячейки по формуле: Пользовательский 0;;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...