请参阅下面的回答。
我记得前一段时间用一个数组公式解决这个问题,但我还没有得到原始的工作簿,答案完全是逃避我的。
以下是示例数据:
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
的数组公式技巧来构建基于查找值的数组,但是对于我的生活,我无法弄清楚我是如何将后续数组应用于后续数组的。这与FREQUENCY
有关,但这只适用于数字,当我尝试过数字时,我甚至无法复制它。在这里,我使用了SUM(1/COUNTIF(RANGE,RANGE))
和SUMPRODUCT(1/COUNTIF(RANGE,RANGE))
。
具体来说,在D2
中的Bill和D3
中的Bob,我已经到达此数组公式(位于E2
和E3
):
{=SUM(IF($A$2:$A8=D2,1/COUNTIF($B$2:$B8,$B$2:$B8)))}
(D3显然代替了单元格E3
中的D2。)
COUNTIF
计算每个项目的所有出现次数,而不仅仅是属于查找的项目。
任何指针都朝着正确的方向发展?鉴于我过去曾经破解过一次,这真的令人沮丧。
(我在Excel 2013中意识到我可以在数据透视表中使用Distinct Count
进行此操作,但出于几个原因,我需要在此处进行此操作。) < / p>
提前致谢。
编辑 - 找到它 - 看下面的答案
答案 0 :(得分:2)
回答我自己的问题,以便它显示为已经解决。
我去搜索并发现了这个:
这是公式:
=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))
我不知道我之前是怎么做过的,但是我会在整天面对这一切后拿走任何我能得到的东西。
答案 1 :(得分: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中要查找的名称
根据您的区域设置,您可能需要更改字段分隔符“;”通过“,”