Excel-在单个单元格中分别计算字母和数字
我需要一种在一个单元格内分别计算数字和字母的方法 例如,如果一个单元格包含Excel-在单个单元格中分别计算字母和数字,excel,excel-formula,vba,alt,f11,Excel,Excel Formula,Vba,Alt,F11,我需要一种在一个单元格内分别计算数字和字母的方法 例如,如果一个单元格包含1234567ABC,我需要能够将其输出为 “7个数字”和 “3封信” 我想不出一种方法来使用len()函数,而countif只对单元格本身进行计数 任何帮助都将不胜感激。如果每个单元格都只填充数字和字母,那么实现这一点的快速非vba方法是将替换函数嵌套10次以删除10个数字字符。你只剩下阿尔法了。然后您可以len()alpha文本/从原始长度中减去该数字以获得数字长度 假设“1234567ABC”位于单元格A1中:
1234567ABC
,我需要能够将其输出为
- “7个数字”和
- “3封信”
len()
函数,而countif
只对单元格本身进行计数
任何帮助都将不胜感激。如果每个单元格都只填充数字和字母,那么实现这一点的快速非vba方法是将替换函数嵌套10次以删除10个数字字符。你只剩下阿尔法了。然后您可以
len()
alpha文本/从原始长度中减去该数字以获得数字长度
假设“1234567ABC”位于单元格A1中:
这个公式给出了字母数。(三)
这个公式给出了总数:(7)
如果您想开始以其他方式/更深入地处理数据,可能需要VBA解决方案
注意
为了满足您原始帖子中的要求,请在上述公式的末尾添加此后缀:
=x & " Numbers / Letters"
其中x=上述两个公式。这将在计算的数字后添加文本
进一步阅读:
以下链接详细介绍了执行类似操作的VBA UDF:
附加更新(谢谢lori\m)
此公式更易于阅读/更新:
=SUM(LEN(A1)-LEN(SUBSTITUTE(A1,{1,2,3,4,5,6,7,8,9,0},"")))
从我的回答来看:
要获得更详细的答案,请单击此字符串
1234567ABC456
将被报告为
7N3L3N
这样的regexp可以完成这项工作
- 按在一起以转到VBE
- 插入模块
- 复制并粘贴下面的代码
- 同时按下返回Excel
=字母数字(A1)
嘿,Excel。您是否尝试过使用宏?这是否仍然需要我知道计算单个数字和字母的代码?它在Excel 2007以后的版本中工作,但这将超出以前版本中的八个嵌套函数限制。总数的另一种选择是:
=SUM(LEN(A1)-LEN(替换为(A1,{1,2,3,4,5,6,7,8,9,0},”))
Ah!!!我试着用代词来表示{},但它不起作用,我忘了求和了!(我今天工作太忙了)我将把这个作为更新添加。谢谢你,萝莉。
=x & " Numbers / Letters"
=SUM(LEN(A1)-LEN(SUBSTITUTE(A1,{1,2,3,4,5,6,7,8,9,0},"")))
Function AlphaNumeric(strIn As String) As String
Dim objRegex As Object
Dim objRegMC As Object
Dim objRegM As Object
Dim strOut As String
Set objRegex = CreateObject("vbscript.regexp")
With objRegex
.Global = True
.ignorecase = True
.Pattern = "[^\w]"
If .test(strIn) Then
AlphaNumeric = "One or more characters is invalid"
Else
.Pattern = "(\d+|[a-z]+)"
Set objRegMC = .Execute(strIn)
For Each objRegM In objRegMC
strOut = strOut & (objRegM.Length & IIf(IsNumeric(objRegM), "N", "L"))
Next
AlphaNumeric = strOut
End If
End With
End Function