Excel - 计算数组1中出现在数组2中的值的次数

时间:2016-03-09 01:52:43

标签: arrays excel excel-formula

我刚刚开始使用数组(如昨天)并且已经雄心勃勃地尝试在工作电子表格中使用它们但是我遇到了问题。详情如下:

我有一个数据表,其中R列包含一个房间号码列表(每个房间号码可以出现多次,每个实例都需要计算。)。我想计算这些房间号码中有多少也在Z列(特定房间类型)的列表中。

我可以通过单独检查每个房间号来做到这一点,但是想知道是否可以通过立即检查整个阵列来做到这一点。

2 个答案:

答案 0 :(得分:0)

我模拟了一个数组公式来完成任务。可能不是最好的实现,但它很快。与往常一样,您需要使用CTRL + SHIFT + ENTER输入数组公式。请注意,我假设每列有15行,并从第1行开始。

独立重复计数

=SUM(1*NOT(ISERROR(MATCH(R1:R15,$Z$1:$Z$15,0))))

计数重复为一个

=SUM(IFERROR(1/COUNTIF(R1:R15,R1:R15),0)*NOT(ISERROR(MATCH(R1:R15,$Z$1:$Z$15,0))))

这个公式就像这样......

IFERROR(1/COUNTIF(R1:R15,R1:R15),0)

返回1 /(所有列R中给定单元格值的出现次数)。如果房间号在R列中三次,我们可以总结1/3 + 1/3 + 1/3(所以我们只计算一次)。

NOT(ISERROR(MATCH(R1:R15,$Z$1:$Z$15,0)))

如果给定的列R单元格值出现在Z列中,则返回TRUE,否则返回FALSE。当我们将这个时间乘以第一部分时,TRUE变为1而FALSE变为0。

=SUM(...)

总结所有中间产品。

答案 1 :(得分:0)

由@Scott Craner提供建议:

= SUMPRODUCT(COUNTIF(R2:R1709,Z2:Z199))

还要感谢@Mark Ba​​lhoff。