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の詳細です。 http://www.mrexcel.com/forum/Excel-questions/16364-how-remove-numbers.html
追加の更新(ありがとうlori_m)
この式は非常に読みやすく、更新しやすいものです。
=SUM(LEN(A1)-LEN(SUBSTITUTE(A1,{1,2,3,4,5,6,7,8,9,0},"")))
英数字の文字列の形式を分析する の私の答えから:
より詳細な回答については、この文字列_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
_