0

数値、文字、文字、またはその両方の値の列があります。次のルールを使用して、その列を新しい列にふるいにかける必要があります。

1) セルに数字が含まれている場合は、「89」を連結します

2) セルに数字とハイフンが含まれている場合は、ハイフンを削除して 89 を連結する

3) セルに文字またはその他の仕様文字が含まれている場合、文字列と言う

column    resultingColumn
1234      123489
12-34hk   string
&23412    string
99-9      99989
34-4      34489

試してみましたが、思ったほど簡単ではありませんでした

Function SC(strIn As String) As String
    Dim objRegex As Object
    Set objRegex = CreateObject("vbscript.regexp")
     With objRegex
     //i am not sure how to list the rules here
    .ignorecase = True
    SC = .Replace(strIn, vbNullString)
    End With
    End Function
4

2 に答える 2

1

これには正規表現も VBA も必要ありません。B2 を次の式に設定し、入力します。

 =IF(SUM(LEN(SUBSTITUTE(A2,{1,2,3,4,5,6,7,8,9,0,"-"},"")))-10*LEN(A2)=0,SUBSTITUTE(A2,"-","")&"89","string")

[0-9\-]これが行うことは、テキストからクラス内の各文字を削除した場合の長さを計算することです。他の文字がない場合は、各文字を 1 回削除したことになるため、文字列の長さの合計は元の文字列の 10 倍になります。余分な文字がある場合、それらは削除されないため、合計がしきい値を超えます。

于 2013-10-09T01:31:45.490 に答える