如何统计单元格中的表情符号与符号?求单单元格字符计数公式
嘿,这两个Excel统计问题我熟!我来给你一步步讲清楚怎么解决~
问题1:如何计算单元格中的表情符号和符号数量?
表情符号和特殊符号大多有特定的Unicode编码区间,我们可以基于这个特性来统计。这里给你两种实用方法:
方法1:数组公式(适合Excel 365/2021及新版本)
直接用内置函数组合就能实现,不需要额外工具。比如统计A1单元格里的表情+符号数量,用这个公式:
=SUM(--( (UNICODE(MID(A1,SEQUENCE(LEN(A1)),1))>=128512)*(UNICODE(MID(A1,SEQUENCE(LEN(A1)),1))<=128591) + (UNICODE(MID(A1,SEQUENCE(LEN(A1)),1))>=127744)*(UNICODE(MID(A1,SEQUENCE(LEN(A1)),1))<=128255) ))
简单解释下逻辑:
MID(A1,SEQUENCE(LEN(A1)),1):把A1里的每个字符逐个拆出来UNICODE(...):获取每个字符的Unicode编码值- 后面的条件判断:检查编码是否落在主流表情/符号的Unicode区间里,符合条件的会返回
TRUE(转成数字就是1),否则是0 - 最后用
SUM把所有符合条件的数值加起来,就是表情和符号的总数
方法2:自定义VBA函数(兼容所有Excel版本)
如果你用的是旧版Excel,不支持数组公式,那就写个小VBA函数:
- 按
Alt + F11打开VBA编辑器 - 右键点击左侧的工作簿名称,选「插入」→「模块」
- 粘贴下面的代码:
Function CountEmojisAndSymbols(rng As Range) As Integer Dim singleChar As String Dim totalCount As Integer totalCount = 0 For i = 1 To Len(rng.Value) singleChar = Mid(rng.Value, i, 1) ' 匹配常见表情、符号的Unicode编码区间,可根据需求调整 If (AscW(singleChar) >= &H1F600 And AscW(singleChar) <= &H1F64F) Or _ (AscW(singleChar) >= &H1F300 And AscW(singleChar) <= &H1F5FF) Or _ (AscW(singleChar) >= &H2600 And AscW(singleChar) <= &H26FF) Then totalCount = totalCount + 1 End If Next i CountEmojisAndSymbols = totalCount End Function
- 保存后回到Excel,直接输入
=CountEmojisAndSymbols(A1)就能统计A1里的表情和符号数量啦
问题2:统计单个单元格中的表情符号与字符总数
这个更简单!你要的“表情+所有字符的总数”,其实就是单元格里所有可见内容的总长度,直接用Excel自带的LEN函数就行:
=LEN(A1)
对应你的示例:
- A1是
,LEN(A1)返回3 - A2是
卵✋️👈卵卵,LEN(A2)返回5 - A3是
??👊👊👊,LEN(A3)返回5
完全符合你想要的结果~
如果单元格里有多余的空格或隐藏字符,想排除的话,可以结合TRIM函数:=LEN(TRIM(A1)),不过你的示例里没有这种情况,直接用LEN就足够了。
内容的提问来源于stack exchange,提问作者Ryouta11
相关产品推荐
相关产品推荐

