【问题标题】:How do I count unique values that need to meet multiple criteria in Excel?如何计算需要在 Excel 中满足多个条件的唯一值?
【发布时间】:2022-10-02 05:15:05
【问题描述】:

我想计算每天由唯一身份的人打开\'\'邮件的数量。 我在下面包含了一个小例子。 所以在这种情况下,因为哈利在第一天打开了两次邮件,我只想数他一次。 不过,我确实希望他在第 2 天打开的\'\'邮件会计入在第二天打开的邮件总数中。

我应该从中得到的结果是: 第 1 天:2 第 2 天:2

我尝试过 Countifs、unique 与 filter 结合等,但尚未成功。我觉得它们应该以某种方式结合起来,但要继续努力以获得正确的答案。任何帮助将不胜感激。

person action day
Harry mail open 1
Harry mail open 1
Harry click 1
Joseph mail open 1
Harry mail open 2
Maria mail open 2
Maria click 2
  • 您提交的 Countifs() 看起来如何?

标签: excel unique criteria countif


【解决方案1】:

按你的要求:

我想计算唯一身份的人“打开邮件”的数量 每天。

如果输入数据在以下范围C2:E8 中,则可以使用以下公式:

=LET(days, E2:E8,
  BYROW(UNIQUE(days), 
  LAMBDA(day, COUNTA(UNIQUE(FILTER(C2:C8, 
  (D2:D8="mail open") * (days=day))))))
)

如果您想要包含日期的结果,您可以通过HSTACK 函数将结果连接起来,如下在I2 单元格中:

=LET(days, E2:E8, HSTACK(UNIQUE(days), 
  BYROW(UNIQUE(days), LAMBDA(day, 
  COUNTA(UNIQUE(FILTER(C2:C8, (D2:D8="mail open") * (days=day))))))))

解释

我们使用LET 函数来缩短公式以避免重复相同的范围。在我们的例子中,E2:E8 命名为 days。现在对于每个唯一的days(按行)通过BYROW 函数,我们计算唯一的数量,基于过滤条件mail open 和给定的day。通过将每个条件相乘,在 FILTER 函数中建立 and 条件:

FILTER(C2:C8, (D2:D8="mail open") * (days=day))

现在我们只需要通过UNIQUE 得到FILTER 结果的唯一元素(匹配条件的C2:C8)。

【讨论】:

    猜你喜欢
    • 2020-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-14
    • 2017-10-06
    相关资源
    最近更新 更多