Excel公式练习94:统计子列表在列表中出现的次数

excelperfect

引言:本文的练习整理自chandoo.org。多一些练习,想想自己怎么解决问题,看看别人又是怎解决的,能够快速提高Excel公式编写水平。

本次的练习是:计算子列表在列表中出现的次数。对于名为“List”和“Sublist”的两个列表,计算“Sublist”在“List”中出现的次数。其中,“List”和“Sublist”是可变长度的。

示例数据如下图1所示,你的列表和子列表的位置可能与图示不相同,也可以假设两个列表都在行中,子列表中的项可能会重复,但列表中需要完全匹配才能对其进行计数。

图1

不应该使用任何辅助单元格、中间公式或者VBA。

写下你的公式。

解决方案

公式1

输入数组公式:

=SUM(N(FREQUENCY((List=TRANSPOSE(Sublist))*(ROW(List)-TRANSPOSE(ROW(Sublist))),(List=TRANSPOSE(Sublist))*(ROW(List)-TRANSPOSE(ROW(Sublist))))=ROWS(Sublist)))

返回:

2

公式2

输入数组公式:

=SUMPRODUCT(--(COUNTIF(List,T(OFFSET(A$1,SMALL(IF(FREQUENCY(MATCH(Sublist,Sublist,0),MATCH(Sublist,Sublist,0))>=1,ROW(Sublist)),ROW(OFFSET(A$1,,,SUM(1/COUNTIF(Sublist,Sublist)))))-1, 0)))>0))

返回:

2

这两个公式有点难以理解,好好研究一下,有什么发现,可以在下面留言。

(0)

相关推荐