如何在LibreOffice Calc中统计单元格区域内文本字符串总出现次数
Excel区域内子字符串出现次数统计解决方案
原单个单元格统计公式 =(LEN(A1)-LEN(SUBSTITUTE(A1,A2,"")))/LEN(A2) 仅适用于单个单元格,直接替换为区域会因数组运算不被普通公式支持而返回 #VALUE!,以下是针对两个需求的解决方法:
1. 统计区域C1:D9842内'apple'的总出现次数
使用SUMPRODUCT函数处理数组运算,自动遍历区域内每个单元格并累加次数:
=SUMPRODUCT((LEN(C1:D9842)-LEN(SUBSTITUTE(C1:D9842,"apple","")))/LEN("apple"))
- 原理:
SUBSTITUTE对区域中每个单元格替换掉所有'apple',LEN计算替换前后的长度差,除以'apple'的长度得到单个单元格内的出现次数,SUMPRODUCT将所有单元格的结果求和。
2. 统计区域内'apple'和'orange'的总出现次数之和
可以将两个单独的统计公式相加,或合并为一个SUMPRODUCT:
方法一:分开求和
=SUMPRODUCT((LEN(C1:D9842)-LEN(SUBSTITUTE(C1:D9842,"apple","")))/LEN("apple")) + SUMPRODUCT((LEN(C1:D9842)-LEN(SUBSTITUTE(C1:D9842,"orange","")))/LEN("orange"))
方法二:合并为单个公式
=SUMPRODUCT( (LEN(C1:D9842)-LEN(SUBSTITUTE(C1:D9842,"apple","")))/LEN("apple") + (LEN(C1:D9842)-LEN(SUBSTITUTE(C1:D9842,"orange","")))/LEN("orange") )
额外说明
- 若需忽略大小写统计,可将单元格内容和子串统一转换为大写(或小写):
=SUMPRODUCT((LEN(C1:D9842)-LEN(SUBSTITUTE(UPPER(C1:D9842),UPPER("apple"),"")))/LEN("apple")) - 空单元格会自动返回0,不影响最终统计结果。
内容的提问来源于stack exchange,提问作者Karl
相关产品推荐
相关产品推荐

