次のようなセルにエントリがあります。
75864543&m
2211842
1523674&mr
3452435tr
セルにはさまざまな数の数値が含まれており、末尾に文字/文字が付いているものもあります。数値以外のすべてを削除したいのですが、数値の長さが変化するために立ち往生しています。
誰にも回避策がありますか?
次のようなセルにエントリがあります。
75864543&m
2211842
1523674&mr
3452435tr
セルにはさまざまな数の数値が含まれており、末尾に文字/文字が付いているものもあります。数値以外のすべてを削除したいのですが、数値の長さが変化するために立ち往生しています。
誰にも回避策がありますか?
次のユーザー定義関数を試してください。
Public Function ReturnNumerals(rng As Range) As String
Dim sStr As String, i As Long, sStr1 As String
Dim sChar As String
sStr = rng.Value
For i = 1 To Len(sStr)
sChar = Mid(sStr, i, 1)
If sChar Like "[0-9]" Then
sStr1 = sStr1 & sChar
End If
Next
ReturnNumerals = sStr1
End Function
編集#1:
あなたが「マクロフォビア」であるか、他の理由で VBA が除外されている場合は、次の配列数式を試してください。
=MID(SUMPRODUCT(--MID("01"&A1,SMALL((ROW($1:$300)-1)*ISNUMBER(-MID("01"&A1,ROW($1:$300),1))),ROW( $1:$300))+1,1),10^(300-ROW($1:$300))),2,300)
配列数式は、 ENTERキーだけでなく、CNTRL-SHFT-ENTERで入力する必要があります。
たとえば、A1 に次のものが含まれているとします。
a123wer98bg5
醜い配列式は次を返します。
123985