1 つのセル内で数字と文字を別々にカウントする方法が必要です。
たとえば、セルに含まれている場合、1234567ABC
これを次のように出力できる必要があります
- 「7ナンバーズ」と
- 「3文字」。
len()
機能する機能を使用する方法が思いつかずcountif
、セル自体をカウントするだけです。
どんな助けでも大歓迎です。
1 つのセル内で数字と文字を別々にカウントする方法が必要です。
たとえば、セルに含まれている場合、1234567ABC
これを次のように出力できる必要があります
len()
機能する機能を使用する方法が思いつかずcountif
、セル自体をカウントするだけです。
どんな助けでも大歓迎です。
各セルが数字と文字だけで埋められている場合、これを達成するための非 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},"")))
Analyze format of alpha-numeric string の私の回答から:
より詳細な回答については、この文字列
1234567ABC456
は次のように報告されます
7N3L3N
このような正規表現は仕事をします
次に、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