Google Sheets 如何计算C列数组元素在A列单元格中的出现次数
解决方案
单单元格公式(可手动下拉填充)
在B2单元格输入以下公式,下拉到所有需要计算的行即可:
=SUMPRODUCT(--ISNUMBER(SEARCH(","&FILTER(C:C,C:C<>"")&",", ","&A2&",")))
自动溢出数组公式(无需手动下拉)
如果需要一次输入自动计算所有A列有内容的行,在B2单元格输入以下公式即可自动生成所有行的结果:
=BYROW(A2:A, LAMBDA(row, IF(row="",,SUMPRODUCT(--ISNUMBER(SEARCH(","&FILTER(C:C,C:C<>"")&",", ","&row&",")))))
公式逻辑说明
- 给C列元素和A列内容前后都拼接逗号,是为了避免部分匹配问题,确保只有完全匹配逗号分隔的独立项才会被统计,不会出现
A列内容为ab、C列元素为a的误判情况 FILTER(C:C,C:C<>"")会过滤掉C列的空单元格,避免空值干扰统计结果SEARCH函数会查找C列每个元素是否存在于当前行A列的内容中,存在返回位置数值,不存在返回错误ISNUMBER将查找结果转为布尔值,--将布尔值转为1(匹配成功)和0(匹配失败)SUMPRODUCT对所有匹配结果求和,最终得到当前行匹配C列元素的总数量- 数组公式中使用
BYROW遍历A列每一行,自动对每行执行计数逻辑,A列为空时返回空值不显示冗余内容
你给出的示例使用该公式计算后,结果和你示例中B列的预期值完全一致。
内容的提问来源于stack exchange,提问作者MRGDRK
相关产品推荐
相关产品推荐

