我有3列。
-----A-----B-----C-----
---Name----ID---Report
在A栏中我有名字(可以重复)
在B栏中,我有ID(可以用不同名称的相同ID重复)
在C栏中,我有“是”和“否”(对于相同的ID,可以重复为“否”)
我需要帮助来计算John(C列)C列中的No的数量,但如果B列有重复的ID,则只计算一次。
我可以通过过滤器和东西来做到这一点,但我只需要使用公式来做。
这是我正在处理的文件(dropbox link)
Dropbox excel file link
这是我到目前为止所得到的
=COUNTIF(A1:A1000,"*" & "John" & "*")
答案 0 :(得分:7)
您可以使用以下单个公式:
=SUM(IF(FREQUENCY(IF(A2:A200="John",IF(C2:C200="No",B2:B200)),B2:B200),1))
这是一个“需要用CTRL + SHIFT + ENTER
确认的数组公式这为你的例子提供了3 - 注意它要求B列数据是数字,这似乎是这里的情况......
答案 1 :(得分:1)
我的想法是使用公式D
添加列=COUNTIFS(A:A,"="&A2,B:B,"="&B2,C:C,"="&C2)
。这将为您提供每行的重复数量。如果一行返回3,则表示该确切配置还有另外两个实例。
接下来,创建一个新表,进行测试我在列G
和H
中执行了此操作。从G
开始,列G2
仅编号为1,2,3等。 Name是单元格H1
中的标题和引用,在本例中为John。然后将此公式放在单元格H2
中:=COUNTIFS(A:A,"="&$H$1,C:C,"=No",D:D,"="&G2)/G2
并将其向下拖动。它基本上计算每个“1”副本,“2”副本和“3”副本(实际上可能有用)的实例。然后只需汇总H
列,您就应该得到答案。
答案 2 :(得分:1)
这似乎与你想要做的非常接近
=SUMPRODUCT((A2:A1000="John")*(C2:C1000="No")*(IF(FREQUENCY(B2:B1000,B2:B999)>0,TRUE)))
有一个缺点是频率忽略了最后一行。
如果我将频率公式更改为FREQUENCY(B2:B1000,B2:B1000)
,则会因为返回10个结果而不是所需的9而错误输出。
修改的
扩展其他范围可能比缩短bin数组更好。
=SUMPRODUCT((A2:A1001="John")*(C2:C1001="No")*(IF(FREQUENCY(B2:B1001,B2:B1000)>0,TRUE)))