前言 EXCEL可以使用COUNTIF函数来计算某个区域中满足给定条件的单元格的数目。如下图所示: A列是项目编号,B列是项目类型,右图为不同项目类型的数量统计。 E2 =COUNTIF($B$2:$B$9,E$1) 其中: $B$2:$B$9为区域范围,采用了绝对引用。 E$1为给定的条件 拖动单元格右下角小黑点,向右即可复制到F2,G2单元格。 正文 那么如何统计一个单元格内,特定文本出现的次数呢? 这里提供两种思路: 第一种思路:利用标准的公式,进行组合嵌套,如下图所示: B2=(LEN($A$2)-LEN(SUBSTITUTE($A$2,B1,"")))/LEN(B1) 分别解释如下: LEN($A$2):单元格字符的个数 SUBSTITUTE($A$2,B1,""):将单元格中要搜索的字符串替换成空值 LEN($A$2)-LEN(SUBSTITUTE($A$2,B1,"")):计算字符替换前后的个数差值,也就是替换之后少了多少个字符 (LEN($A$2)-LEN(SUBSTITUTE($A$2,B1,"")))/LEN(B1):差值再除以要查找的字符串的字符个数就是该字符串重复的次数。 第二种思路:自定义公式 ALT+F11,打开VBA编辑器,插入模块,在编辑窗口输入以下代码 Function FINDC(Target, Source) k = 0 n = Len(Source) m = Len(Target) For i = 1 To n If Mid(Source, i, m) = Target Then k = k + 1 End If Next FINDC = k End Function 回到EXCEL主界面,输入公式,就可以啦! B2=findC(B$1,$A$2) 总结 这个公式非常简单,不过需要你自定义,要有一定的VBA 基础才行。学会VBA,你可以定义你想要的任何公式,再也不用嵌套了。你学会了吗?欢迎在下方留言! |
|