6

1 つのセル内で数字と文字を別々にカウントする方法が必要です。

たとえば、セルに含まれている場合、1234567ABCこれを次のように出力できる必要があります

  • 「7ナンバーズ」と
  • 「3文字」。

len()機能する機能を使用する方法が思いつかずcountif、セル自体をカウントするだけです。

どんな助けでも大歓迎です。

4

2 に答える 2

7

各セルが数字と文字だけで埋められている場合、これを達成するための非 vba の簡単な方法は、10 個の数字を削除するために代入関数を 10 回ネストすることです。残っているのはアルファのみです。次にlen()、アルファテキスト/元の長さからその数値を減算して、数値の長さを取得できます。

「1234567ABC」がセル A1 にあると仮定します。

この式は文字数を与えます。(3)

=LEN(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,0,""),1,""),2,""),3,""),4,""),5,""),6,""),7,""),8,""),9,""))

この式は合計数を示します: (7)

=LEN(A1)-LEN(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,0,""),1,""),2,""),3,""),4,""),5,""),6,""),7,""),8,""),9,""))

他の方法でデータの処理を開始したい場合や、より詳細にデータを処理したい場合は、VBA ソリューションが必要になる可能性があります。

ノート

元の投稿の要件を満たすには、上記の式の末尾に次のサフィックスを追加します。

=x & " Numbers / Letters" 

ここで、x = 上記の 2 つの式。これにより、計算された数値の後にテキストが追加されます。

参考文献:

次のリンクでは、同様のことを行う VBA UDF について詳しく説明してい ます。

追加の更新(thanks loli_m)

この式は、読み取り/更新が非常に簡単です。

=SUM(LEN(A1)-LEN(SUBSTITUTE(A1,{1,2,3,4,5,6,7,8,9,0},"")))
于 2012-08-29T21:19:39.070 に答える
3

Analyze format of alpha-numeric string の私の回答から:

より詳細な回答については、この文字列 1234567ABC456 は次のように報告されます 7N3L3N

このような正規表現は仕事をします

  • を一緒に押して VBE に移動します
  • モジュールを挿入
  • 以下のコードをコピーして貼り付けます
  • を一緒に押して、Excel に戻ります

次に、Excel内、つまりB1で関数(無効な文字列も検出します)を使用できます
=AlphaNumeric(A1)

ここに画像の説明を入力

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
于 2012-08-29T23:54:11.017 に答える