首页 > 解决方案 > 计算在另一个列表中找到一个列表项的频率

问题描述

我有 3 张纸。

工作表 1有一个名为PayCode的列,包含大约 200 条记录,每条记录都包含一个字符串。每个单元格只包含一个特定的字符串,但每个字符串可以在多个单元格中找到。其中一些字符串表示员工是否缺席。

工作表 2有一个包含六个唯一感兴趣的字符串的列表,命名范围为Absent。这六个字符串是可能的工资代码,表示员工是否缺勤,它们是我在PayCode列中查找的内容。

表 3 上,我想计算在PayCode中找到来自Absent的字符串的次数。

我在网上找到的每条建议都让我在工作表 2COUNTIF上的列表旁边做一个计算每个列表项出现的频率,但我只想在工作表 3上的一个单元格中计算缺席列表项的出现总数在支付代码列中。

标签: excelexcel-formulaexcel-2013

解决方案


=COUNTIF(Paycode,INDEX(Absent,1))+COUNTIF(Paycode,INDEX(Absent,2))+COUNTIF(Paycode,INDEX(Absent,3))+COUNTIF(Paycode,INDEX(Absent,4))+COUNTIF(Paycode,INDEX(Absent,5))+COUNTIF(Paycode,INDEX(Absent,6))

这种方法没问题,因为您只处理缺席范围内的 6 个条目。基本上,如果对于索引处理的每个条目,您都会进行计数,然后为下一个条目添加值。因此,索引中的 1 到 2 到 ...6 的变化。

更新

感谢 Scott Craner 的评论,上面的公式可以简化为:

=SUMPRODUCT(COUNTIF(Paycode,absent))

或者,如果您想要一个真正的数组公式,请使用 CSE 输入以下内容:

=SUM(COUNTIF(paycode,absent))

推荐阅读