Excel 忘记了如何实现这一点:根据查找值将计数与数据区分开来

Excel 忘记了如何实现这一点:根据查找值将计数与数据区分开来,excel,excel-formula,array-formulas,Excel,Excel Formula,Array Formulas,请参见下面的答案。 我记得不久前用数组公式解决了这个问题,但我再也没有原始工作簿了,我完全想不出答案了 以下是示例数据: Salesman Product Bill Apple Bob Orange Bill Banana Bob Apple Bill Apple Bob Orange Bill Apple 我想做的是用鲍勃和比尔卖出的不同商品的数量做另一张表。i、 e: Salesm

请参见下面的答案。

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

以下是示例数据:

Salesman    Product
Bill        Apple
Bob         Orange
Bill        Banana
Bob         Apple
Bill        Apple
Bob         Orange
Bill        Apple
我想做的是用鲍勃和比尔卖出的不同商品的数量做另一张表。i、 e:

Salesman Distinct Items
Bill     2
Bob      2
我记得使用数组公式技巧和
IF
根据查找值构建一个数组,但我一直不知道如何将一个不同的计数应用于后续数组。这与频率有关,但这只适用于数字,当我只尝试数字时,我甚至无法复制。在这里,我使用了
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)))

(D3显然被单元格
E3
中的D2取代)

尽管如此,这仍然很遥远。我使用Evaluate公式来跟踪它,我可以看到
COUNTIF
统计每个项目的所有出现次数,而不仅仅是属于查找的项目

有没有指向正确方向的指针?考虑到我过去曾破译过一次,这真是令人沮丧

(我意识到,使用Excel 2013,我可以在数据透视表中使用
不同计数
,但出于几个原因,我需要在数据透视表之外使用。)

提前谢谢


编辑-找到它-请参见下面的答案回答我自己的问题,这样它将显示为已解决

我去寻找,发现了这个:

以下是公式:

=SUM(如果频率(如果($A$2:$A$8=D2,匹配($B$2:$B$8,$B$2:$B$8,0)),如果($A$2:$A$8=D2,匹配($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“,”

@pnuts,并适当注明-完成。谢谢你的提示。(这是为了回应一个有用的建议,将答案从OP移到答题帖的正文中,这是我一开始没有做过的。)谢谢,我不会忘记——上面说我可以在两天后做。试过了——我得到了#价值!公式的这一部分出错:
MATCH($C$2:$C$6:IF($B$2:$B$6=A2,$A$2,$A$2),0)
。我再试了一次,效果100%,如果最后不按Ctrl-Shift-Enter键(这是一个数组公式),则会出现错误值。抱歉:你说得对,它确实有效。我在做CSE,但当我把它放进工作表时,我把它搞砸了。现在无法决定什么是最好的:你的方法还是我找到的方法!