列出开始日期和今天之间所有缺少的日期()

时间:2018-05-03 10:28:51

标签: google-sheets

Sample Sheet - 预期结果

我需要帮助列出 Google表格列中所有缺失的日期,其中的开始日期为今天()。

日期范围:出勤率!G2:G

公式:DashBoard!T1

以下是部分工作的公式,显示第一个缺失日期。但我要求它列出所有缺少的日期。

部分工作公式:

Console.WriteLine($"{Finish:dd/MM/yyyy}");

谢谢! Zatin

2 个答案:

答案 0 :(得分:2)

=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列出从开始日期到今天的所有日期
  • 匹配以查找给定列表中上面列出的所有日期。
  • FILTER(,ISNA())查找缺少的日期

答案 1 :(得分:1)

=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生成两个给定日期之间所有可能日期的列表。

重复ARRAYFORMULA是不幸的,但Google公式中没有“let”关键字或等效词。如果有人知道如何避免它,我将非常感谢对答案的评论或更正。

相关问题