请参阅下面的答案
我记得不久前我用一个数组公式解决了这个问题,但我再也没有得到原始的工作簿了,我完全无法得到答案。
以下是示例数据:
Salesman Product
Bill Apple
Bob Orange
Bill Banana
Bob Apple
Bill Apple
Bob Orange
Bill Apple
我想做的是用鲍勃和比尔卖出的不同商品的数量制作另一张桌子。即:
Salesman Distinct Items
Bill 2
Bob 2
我记得在IF
中使用了数组公式技巧,根据查找值构建了一个数组,但在我的一生中,我不知道如何将不同的计数应用于随后的数组。这与FREQUENCY
有关,但它只适用于数字,当我只尝试数字时,我甚至无法复制它。在这里,我玩过SUM(1/COUNTIF(RANGE,RANGE))
和SUMPRODUCT(1/COUNTIF(RANGE,RANGE))
。
具体来说,Bill在D2
中,Bob在D3
中,我得到了这个数组公式(放在E2
和E3
中):
{=SUM(IF($A$2:$A8=D2,1/COUNTIF($B$2:$B8,$B$2:$B8)))}
(在细胞E3
中,D3明显取代了D2。)
不过,还有很长的路要走。我正在使用Evaluate Formula来跟踪它,我可以看到COUNTIF
统计每个项的所有出现次数,而不仅仅是属于查找的次数。
有没有指向正确方向的指针?考虑到我过去曾经破解过它,这真的很令人沮丧。
(我意识到使用Excel 2013,我可以在数据透视表中使用Distinct Count
,但出于几个原因,我需要在数据透视外进行操作。)
提前谢谢。
编辑-找到它-见下面的答案
回答我自己的问题,使其显示为已解决。
我搜索了一下,发现了这个:
http://www.mrexcel.com/forum/excel-questions/706444-function-formula-excel-count-unique-values-matching-criteria.html
以下是公式:
=SUM(IF(FREQUENCY(IF($A$2:$A$8=D2,MATCH($B$2:$B$8,$B$2:$B$8,0)),IF($A$2:$A$8=D2,MATCH($B$2:$B$8,$B$2:$B$8,0)))>0,1))
我不知道我以前是怎么做到的,但在这件事上做了一整天的假面之后,我会尽我所能。
您可以尝试以下数组公式:
=SUM(IF(ROW($C$2:$C$6)-ROW($C$2)+1=IFERROR(MATCH($C$2:$C$6;IF($B$2:$B$6=A2;$C$2:$C$6);0);0);1;0))
B2:B6中的名称、C2:C6中的产品以及A2 中要查找的名称
根据您的地区设置,您可能需要更改字段分隔符";"by",">