Список всех пропущенных дат между датой начала и сегодняшним днем ​​() - PullRequest
0 голосов
/ 03 мая 2018

Пример листа - с ожидаемыми результатами

Мне нужна помощь в перечислении всех пропущенных дат в столбце Google Sheets , который имеет дату начала до сегодняшнего дня ().

Диапазон дат: посещаемость! G2: G

Формула в: DashBoard! T1

Ниже приведена частично рабочая формула, отображающая первую отсутствующую дату только . Но я требую перечислить все пропущенные даты.

Частично рабочая формула:

=ARRAYFORMULA(SMALL(IF(COUNTIFS(Attendance!G2:G, "<="&ROW(INDIRECT(MIN(Attendance!G2:G)&":"&MAX(Today()))), Attendance!G2:G, ">="&ROW(INDIRECT(MIN(Attendance!G2:G)&":"&MAX(Today()))))=0, ROW(INDIRECT(MIN(Attendance!G2:G)&":"&MAX(Today())))), ROWS($A$1:A1)))

Спасибо! Затин

Ответы [ 2 ]

0 голосов
/ 03 мая 2018
=filter(
   arrayformula(Attendance!G2+row(indirect("1:"&today()-Attendance!G2))),
   isna(match(
          arrayformula(Attendance!G2+row(indirect("1:"&today()-Attendance!G2))),
          Attendance!G2:G29,
          0
        ))
 )

Объяснение

Основная идея заключается в том, что «список всех отсутствующих» формально является результатом вычитания набора существующих дат из набора всех возможных дат.

Для реализации вычитания (дополнения) мы используем композицию формул FILTER + ISNA / MATCH. Первый аргумент для FILTER - это набор, из которого мы вычитаем, второй аргумент для MATCH - это вычитаемый набор. ARRAYFORMULA генерирует список всех возможных дат между 2 указанными датами.

Повторение ARRAYFORMULA вызывает сожаление, но не существует ключевого слова let или эквивалента для формул Google. Если кто-нибудь знает, как этого избежать, буду благодарен за комментарий или исправление к ответу.

0 голосов
/ 03 мая 2018
=FILTER(WORKDAY.INTL(Attendance!G2,ROW(A1:INDEX(A:A,today()-Attendance!G2)),"0000000"),ISNA(MATCH(WORKDAY.INTL(Attendance!G2,ROW(A1:INDEX(A:A,today()-Attendance!G2)),"0000000"),Attendance!G2:G,0)))
  • WORKDAY.INTL, чтобы перечислить все даты от даты начала до сегодняшнего дня
  • СООТВЕТСТВУЙТЕ, чтобы найти все перечисленные выше даты в данном списке.
  • ФИЛЬТР (, ISNA ()) для поиска пропущенных дат
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...