4

住所の列があり、番地を含まないものを見つける必要があります。残念ながら、住所はさまざまなユーザーによって入力されており、それらは同じパターンに従っていないため、通りの種類、通りの名前、郊外の順序が異なり、LEFT、RIGHT、MID などの関数を使用して特定の文字が番号。列は次のようになります。

    10 Willsons Drive, Manhattan
    Epping, 23 Wet Rd
    Longsdale St, Kingsbury
    11 Link Crt, Pakenham

セル/文字列に数字が含まれているかどうかを教えてくれるExcelまたはVBA関数はありますか?

4

3 に答える 3

5

これをモジュールに入れてから、ワークシートでその隣の列にすることができます。数式=HaveNumbers(A2)を入れて、そのようにするかどうかを確認します (True/False)。代わりに文字列を返すように変更できます。これは TRUE / FALSE を返します。

Function HaveNumbers(oRng As Range) As Boolean
     Dim bHaveNumbers As Boolean, i As Long        
     bHaveNumbers = False
     For i = 1 To Len(oRng.Text)
         If IsNumeric(Mid(oRng.Text, i, 1)) Then
             bHaveNumbers = True
             Exit For
         End If
     Next
     HaveNumbers = bHaveNumbers
End Function
于 2013-09-19T23:52:07.980 に答える
0

ありがとうモンティ。ただし、私の場合、数字は常に単語から分離されているとは限らなかったため、各文字を反復処理する必要がありました。私は以下を使用しました:

Function ContainsNumber(text As String)
 'checks if given cell contains number

For i = 1 To Len(text)
    If IsNumeric(Mid$(text, i, 1)) Then
        ContainsNumber = True
    Exit Function
End If
Next
ContainsNumber = False

End Function
于 2013-09-20T00:15:30.963 に答える