Google 工作表根据不同列中的条件计算唯一日期

Google Sheets Count Unique Dates based upon a criteria in different columns

我正在尝试找到一个公式来计算一个人的名字出现在两个不同列之一的唯一日期的数量 and/or 两列。

我有一组数据,其中一个人的名字可能在一天内多次出现在“driver”列或“助手”列中。一整天,一些 driver 也可能是帮手,有些日子 driver 可能会来上班,但只是作为帮手。基本上所有driver都可以是helper,但并不是所有的helper都可以是driver。

我已将 link 附加到示例 sheet 中以更加清晰。 https://docs.google.com/spreadsheets/d/1GqNa1hrViX4B6mkL3wWcqEsy87gmdw77DhkhIaswLyI/edit?usp=sharing

我创建了一个带有 SORT(UNIQUE(FLATTEN)) 公式的 REPORTS 选项卡,以提供出现在 DATA 选项卡中的姓名列表。

我正在寻找一种方法来计算姓名(REPORTS 选项卡的 A 列)出现在两列(DATA 选项卡的 B and/or C 列)中的唯一日期) 来确定总工作天数,以便我可以计算查询范围内的总休息天数。

我已经尝试了 countif、countunique 和 countuniqueifs 的多次迭代,但似乎无法找到 return 正确值的方法。

任何关于如何使这项工作的建议将不胜感激。

我想如果你把这个公式放在单元格 b7 中,你就会被设置。你可以往下拉。

=Counta(Unique(filter(DATA!A:A,(DATA!C:C=A7)+(DATA!B:B=A7))))

Here's a working version of your file.

对于任何感兴趣的人,Google Sheets' Filter 功能与 Excel 的 过滤器功能,因为 Sheets 试图通过简单地用逗号分隔每个参数来让用户更容易地应用多个条件。示例:=filter(A:A,A:A<>"",B:B<>"bad result") 将在工作表和 Excel.

之间提供不同的结果

Excel 过滤器 要求 用户在括号内指定多个条件,并表示每个条件都用 OR 条件和 + 标记否则 AND 条件带有乘号 *。虽然这对于其中包含文本的数组进行乘法运算可能显得令人生畏和奇怪,但它提供了更大的灵活性。

为了 Google 的功劳,如果遵循所需的 Excel 语法(就像我在这个答案中所做的那样),那么函数的行为将相同。

删除你得到的并使用:

=QUERY(QUERY(UNIQUE({DATA!A:B; DATA!A:A, DATA!C:C}), 
 "select Col2,count(Col1),"&D2&"-count(Col2)
  where Col2 is not null 
  group by Col2"),
 "offset 1", 0)