忘记了如何实现这一点:根据查找值从数据中区分计数



请参阅下面的答案

我记得不久前我用一个数组公式解决了这个问题,但我再也没有得到原始的工作簿了,我完全无法得到答案。

以下是示例数据:

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中,我得到了这个数组公式(放在E2E3中):

{=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",">

最新更新