我需要一个 excel 公式来告诉您单元格中有多少个数字和字母

我需要一个 excel 公式来告诉您单元格中有多少个数字和字母

嘿,大家好,我需要帮助在 Excel 上对一系列车牌号进行排序。

所以我有一个样本 BMA759JA,我需要一个公式来告诉我单元格中包含多少个字母以及单元格中包含多少个数字。

因此,从左边开始,显然是 3 个字母、3 个数字和 2 个字母,但我该如何编写公式来提供相同的细节呢???

我尝试过很多方法,但都无济于事

答案1

假设你正在乘坐“BMA759JA”

所以显然是 3 个字母、3 个数字和 2 个字母

那么它将始终是 5 个字母和 3 个数字。


在应用公式时,您可以将字符串的每个字符分成一个单元格。

cell A1: B
cell A2: M
cell A3: A
....

然后你可以使用数数功能

cell A10: =count(A1)

然后只需添加每个单词的所有计数结果

cell A19: =sum(A10:A18)

答案2

使用它来验证:

=AND(SUMPRODUCT(--ISERROR(--MID(A2,{1,2},1)))=2,ISNUMBER(--MID(A2,AGGREGATE(15,6,ROW(1:8)/(ISNUMBER(--MID(A2,ROW(1:8),1))),1),AGGREGATE(14,6,ROW(1:8)/(ISNUMBER(--MID(A2,ROW(1:8),1))),1)-AGGREGATE(15,6,ROW(1:8)/(ISNUMBER(--MID(A2,ROW(1:8),1))),1))))

在此处输入图片描述

答案3

以下用户定义函数将返回字母数、数字数、字母数作为逗号分隔的列表,例如:

10,2,3

Public Function decompose(s As String) As String
    Dim breakdown(1 To 100) As Long, L As Long
    Dim i As Long, c As String, j As Long
    L = Len(s)
    breakdown(1) = 1
    j = 1
    For i = 2 To L
        c = Mid(s, i, 1)
        If typ(c) = typ(Mid(s, i - 1, 1)) Then
            breakdown(j) = breakdown(j) + 1
        Else
            j = j + 1
            breakdown(j) = 1
        End If
    Next i

    For i = 1 To j
        decompose = decompose & "," & breakdown(i)
    Next i

    decompose = Mid(decompose, 2)

End Function


Public Function typ(s As String) As String
    If s Like "[0-9]" Then
        typ = "number"
    Else
        typ = "letter"
    End If
End Function

在此处输入图片描述

相关内容