忘记了如何实现这一点:根据查询值的不同数据

请看下面的答案。

我记得早在数组公式中解决了这个问题,但我还没有得到原始的工作簿,答案完全逃脱了我。

以下是示例数据:

Salesman Product Bill Apple Bob Orange Bill Banana Bob Apple Bill Apple Bob Orange Bill Apple 

我想要做的是用Bob和Bill出售的DISTINCT项目的数量来制作另一个表格。 即:

 Salesman Distinct Items Bill 2 Bob 2 

我记得使用数组公式技巧与IF来build立一个基于查找值的数组,但是对于我的生活,我不知道我是如何应用一个不同的计数到后续的数组。 这与FREQUENCY ,但这只适用于数字,当我尝试过数字时,我甚至无法复制这些数字。 在这里,我玩SUM(1/COUNTIF(RANGE,RANGE))SUMPRODUCT(1/COUNTIF(RANGE,RANGE))

具体来说, D2 Bill和D3 Bob我已经到达了这个数组公式(放在E2E3 ):

{=SUM(IF($A$2:$A8=D2,1/COUNTIF($B$2:$B8,$B$2:$B8)))}

(D3明显地取代E3 D2)。

尽pipe如此,还是有一段路要走。 我使用Evaluate公式来追踪它,我可以看到COUNTIF计算每个项目的所有事件,而不仅仅是属于查找的事件。

任何指针返回正确的方向? 考虑到我曾经破解过一次,真是令人沮丧。

(我用Excel 2013来实现,我可以在数据透视表中使用Distinct Count来做到这一点,但是由于几个原因,我需要在这里做一个)。

提前致谢。

编辑 – find它 – 看下面的答案

回答我自己的问题,使其显示为已经解决。

我去找了这个:

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中的名称

根据您的区域设置,您可能需要更改字段分隔符“;” 按“,”