Как отфильтровать долгосрочные события, которые попадают между двумя датами в Excel 2010? - PullRequest
0 голосов
/ 27 июня 2019

Я пытаюсь отфильтровать события, которые могут попасть между определенным периодом времени.Эти события более одного дня, поэтому у них есть даты начала и окончания.

Я думаю, что наиболее близкий пример того, что я ищу, можно найти по этой ссылке: https://www.extendoffice.com/documents/excel/4647-excel-extract-records-between-two-dates.html. Единственное отличие состоит в том, что данные на листе 1 также имеют начальную и конечную даты, которые превышаютдень в разнице, а не существующий для единственного дня.

=IF(ROWS(A$5:A5)>$C$2,"",INDEX(Sheet1!A$2:A$22,SMALL(IF((Sheet1!$A$2:$A$22>=$A$2)*(Sheet1!$A$2:$A$22<=$B$2),ROW(Sheet1!A$2:A$22)-ROW(Sheet1!$A$2)+1),ROWS(A$5:A5))))

Проблема заключается в том, что в настоящее время даты начала могут не совпадать с границами дат исследования, но что даты окончания данных на листе 1 находятся в этих пределах.

Пример того, что я надеюсь сделать, это:

Пример:
enter image description here

Однако вместо того, чтобы иметь дату, простоВ один прекрасный день я надеюсь, что будет найден способ сортировки данных с начальной датой и .

1 Ответ

0 голосов
/ 27 июня 2019

Это решение похоже на работу:
Предполагая, что на листе 1 столбец A и столбец B содержат даты начала и окончания соответственно.

Измените формулу в С1 Листа 2 на это и следуйте другим инструкциям, приведенным в вашем примере.

=SUMPRODUCT((Sheet1!$A$2:$A$22>=A2)*(Sheet1!$A$2:$A$22<=B2)*(Sheet1!$B$2:$B$22>=A2)*(Sheet1!$B$2:$B$22<=B2))

Примечание: Если это не тот результат, который вы ожидаете, то, пожалуйста, поделитесь ожидаемым входом и выходом вместо образца.

Edit:
На основе вашего образца изображения я обновил формулы. Надеюсь, это поможет.

Формула для ячейки H2:

=SUMPRODUCT((($B$2:$B$16>=F2)*($B$2:$B$16<=G2)*($C$2:$C$16>=F2)*($C$2:$C$16<=G2))+((B2:B16<F2)*(C2:C16>=F2)*(C2:C16<=G2))+((B2:B16>=F2)*(B2:B16<=G2)*(C2:C16>G2))+((B2:B16<F2)*(C2:C16)>G2))

Формула для ячейки F5:

=IF(ROWS(F$5:F5)>$H$2,"",INDEX(B$2:B$16,SMALL(IF((($B$2:$B$16>=$F$2)*($B$2:$B$16<=$G$2)*($C$2:$C$16>=$F$2)*($C$2:$C$16<=$G$2))+(($B$2:$B$16<$F$2)*($C$2:$C$16>=$F$2)*($C$2:$C$16<=$G$2))+(($B$2:$B$16>=$F$2)*($B$2:$B$16<=$G$2)*($C$2:$C$16>$G$2))+(($B$2:$B$16<$F$2)*($C$2:$C$16)>$G$2),ROW(B$2:B$16)-ROW($B$2)+1),ROWS(F$5:F5))))

Не забудьте нажать Shift + Ctrl + Enter при использовании формулы в F5. А затем распространяются на другие клетки.

Выход:
enter image description here

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