Excel 365 统计数组列表在原始列表中出现次数的函数

Excel 365 Function to Count Occurrence of Array List In Original List

我在 sheet“缺陷”中有一个公司名称列表。我使用此函数利用数组列表在名为“报告”的 sheet 中构建了这些公司的唯一列表。

=SORT(UNIQUE(Defects!E:E,,TRUE),,1)

效果很好。由于数组是动态的,它可以增长和收缩。我想计算数组中单个项目出现在“缺陷”中的次数 sheet。

在“缺陷”中sheet这是我的完整列表

  E     
1 Acme        
2 Gadget
3 Widget      
4 Acme
5 Widget
6 Widget

这就是我想要的“报告”sheet。

  Company     Count 
1 Acme        2
2 Gadget      1
3 Widget      3

我似乎无法创建一个将数组中的特定值作为 COUNT 或 COUNTIF 函数的输入的函数。这个函数给了我所有的值 1.

=COUNT(MATCH(A20,Defects!E:E,0))

一个简单的 COUNTIF 给我一个错误并将公式转换为文本。

=COUNTIF(Defects!E:E,A1))

感谢任何帮助。

对 COUNTIFS 使用 LET 和 CHOOSE:

=LET(x,SORT(UNIQUE(E1:E6)),CHOOSE({1,2},x,COUNTIFS(E:E,x)))

或者,如果您真的想要完整的列引用:

=LET(y,E:E,x,SORT(UNIQUE(FILTER(y,y<>""))),CHOOSE({1,2},x,COUNTIFS(y,x)))

@Scott 的回答显然是要走的路,在一个公式中完成所有事情,但要回答问题的一部分,即如何让 Countif 查看数组的条件而不是单个值:

假设您有一个适用于

这样的唯一值的溢出公式
=SORT(UNIQUE(FILTER(Defects!E:E,Defects!E:E<>"")))

A1,

然后要在另一个公式中将其所有值作为数组引用,您只需在其引用的末尾放置一个散列即可:

=COUNTIF(Defects!E:E,A1#)

See documentation here