Определите перекрывающиеся конфигурации в Excel - PullRequest
0 голосов
/ 23 января 2020

Я настраиваю таблицу настроек Excel для импорта в базу данных.

В ней четыре столбца

Equipment  Fleet    Start Date     End Date    Highlight Me
=============================================
  A          X       1-Jan-20       5-Jan-20       X
  A          Y       6-Jan-20       
  B          C       1-Jan-20       3-Jan-20
  B          D       4-Jan-20      10-Jan-20
  A          Z       3-Jan-20                      X
  A          Z                      5-Jan-20       X

Мне нужно определить и выделить перекрывающиеся конфигурации

Мне бы хотелось, чтобы строки 1, 5 и 6 были выделены.

  • Все они являются конфигурацией для одного и того же Оборудования , но даты их конфигурации перекрываются
  • Флот - это тот атрибут, который мы настраиваем для диапазона дат, но не имеет отношения к проверке

Ограничения:

  • Мне бы хотелось использовать таблицы (не именованные диапазоны) для этого. Моя таблица называется tblFleetConfig
  • Да, я мог бы сделать это в VBA, но я не хочу иметь дело с доверенными книгами и т. Д. c. et c.

До сих пор я вставил это в столбец справа

=
(tblFleetConfig[@[Start Date]] >= tblFleetConfig[Start Date]) 
* 
(tblFleetConfig[@[Start Date]] <= tblFleetConfig[End Date]) 
* 
(tblFleetConfig[@Equipment]=tblFleetConfig[Equipment])

В результате я получаю 1 для первой строки и 0 для каждой другой строки.

Ясно, что я не понимаю этот синтаксис, и я заинтересован в изучении.

1 Ответ

0 голосов
/ 24 января 2020

Вы задали сложный вопрос, эти пробелы бросают в него гаечный ключ.

Ваша формула - правильный синтаксис, хотя вам нужно обернуть ее в SUMPRODUCT ().

=SUMPRODUCT((tblFleetConfig[End Date]<=tblFleetConfig[@[End Date]])*(tblFleetConfig[Start Date]>=tblFleetConfig[@[Start Date]])*(tblFleetConfig[Equipment]=tblFleetConfig[@Equipment]))

Это ваша формула, обернутая в SUMPRODUCT ().

Возвращает 1, если существует одно вхождение, и число больше 1, если несколько.

Дайте мне знать, если это работает.

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