1

我有 3 列。

-----A-----B-----C-----
---Name----ID---Report

在 AI 列中有名称(可以重复)
在 BI 列中有 ID(对于不同的名称可以使用相同的 ID 重复)
在 CI 列中有 Yes 和 No(对于相同的 ID 可以重复 NO)

我需要帮助来计算 John(A 列)在 C 列中的编号,但如果 B 列具有重复的 ID,则只计算一次。

我可以通过过滤器和其他东西来做到这一点,但我只需要使用公式来做到这一点。

这是我正在处理的文件(Dropbox 链接)
Dropbox excel 文件链接

这是我到目前为止得到的

=COUNTIF(A1:A1000,"*" & "John" & "*")
4

3 回答 3

7

您可以使用这样的单个公式:

=SUM(IF(FREQUENCY(IF(A2:A200="John",IF(C2:C200="No",B2:B200)),B2:B200),1))

那是一个“数组公式,需要用 CTRL+SHIFT+ENTER 确认

这为您的示例提供了 3 - 请注意,它要求 B 列数据为数字,这似乎是这里的情况.....

于 2013-01-29T19:49:18.907 回答
1

这似乎与您尝试做的非常接近

=SUMPRODUCT((A2:A1000="John")*(C2:C1000="No")*(IF(FREQUENCY(B2:B1000,B2:B999)>0,TRUE)))

频率存在一个缺陷,它忽略了最后一行。如果我将频率公式更改为FREQUENCY(B2:B1000,B2:B1000)它会出错,因为它返回 10 个结果而不是所需的 9 个结果。

编辑

扩展其他范围可能比缩短 bins 数组更好。

=SUMPRODUCT((A2:A1001="John")*(C2:C1001="No")*(IF(FREQUENCY(B2:B1001,B2:B1000)>0,TRUE)))
于 2013-01-29T19:33:42.693 回答
1

我的想法是D用公式添加列=COUNTIFS(A:A,"="&A2,B:B,"="&B2,C:C,"="&C2)。这将为您提供每行的重复数。如果一行返回 3,则表示该配置还有另外两个实例。

接下来,创建一个新表,为了测试我在列GH. 列G仅编号为 1、2、3 等,以G2. Name 是单元格中的标题和引用H1,在本例中为 John。然后将此公式放入单元格中H2=COUNTIFS(A:A,"="&$H$1,C:C,"=No",D:D,"="&G2)/G2并将其向下拖动。它本质上是在计算每个“1”重复、“2”重复和“3”重复的实例(这实际上可能很有用)。然后只需对列求和H,您就应该得到答案。

于 2013-01-29T19:05:38.493 回答