プロが教える店舗&オフィスのセキュリティ対策術

複数のセルの、数字部分のみ別のセルに移動したいのですが、
教えていただけますでしょうか?



セルA
aaa1234
bbb5678
ccc9874
ddd5642



セルA   セルB
aaa     1234
bbb     5678
ccc     9874
ddd     5642

このように、文字と数字を分けたいです。
よろしくお願いします。

A 回答 (3件)

こんにちは!



質問通り必ず数値は最後にあり連続しているとします。
↓の画像で
B1セルに
=SUBSTITUTE(A1,C1,"")

C1セルに
=MID(A1,COUNT(MID(A1,ROW($A$1:$A$20),1)*1),20)
C1セルは配列数式になりますので、Ctrl+Shift+Enterで確定!
この画面からコピー&ペーストする場合は
上記数式をドラッグ&コピー → C1セルを選択 → 数式バー内に貼り付け → そのまま(編集可能なまま)
Ctrl+Shiftキーを押しながらEnterキーで確定!
数式の前後の{ }マークが入り配列数式になります。
最後にB1・C1セルを選択 → C1セルのフィルハンドルで下へコピー!
これで画像のような感じになります。
(A列が20文字まで対応できる数式です)

尚、数値位置が決まっていない場合はVBAになりますが一例です。
画面左下の操作したいSheet見出し上で右クリック → コードの表示 → VBE画面のカーソルが点滅しているところに
↓のコードをコピー&ペースト → Excel画面に戻りマクロを実行してみてください。
(Alt+F8キー → マクロ → マクロ実行です)

Sub Sample1() 'この行から
Dim i As Long, k As Long, myStr As String, str1 As String, str2 As String
For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
For k = 1 To Len(Cells(i, "A"))
myStr = Mid(StrConv(Cells(i, "A"), vbNarrow), k, 1)
If myStr Like "[0-9]" Then
str2 = str2 & myStr
Else
str1 = str1 & myStr
End If
Next k
Cells(i, "A") = str1
Cells(i, "B") = str2
str1 = ""
str2 = ""
Next i
End Sub 'この行まで

※ 一旦マクロを実行すると元に戻せませんので
別Sheetでマクロを試してください。m(_ _)m
「数字部分のみ別のセルに移動したいです。」の回答画像1
    • good
    • 0
この回答へのお礼

ありがとうございます!
数値位置が決まっていなかったため、2つ目の方法で試しましたところ、成功しました。
何時間かかるかわからない作業が一瞬で片付きました。
感動です。誠にありがとうございました。

お礼日時:2014/09/07 11:35

No.1です。



前回のC1セルの数式は間違っていました。
↓の数式に変更してください。
今回もC1セルは配列数式です。
=1*MID(A1,MATCH(TRUE,ISNUMBER(1*MID(A1,ROW($A$1:$A$20),1)),0),COUNT(1*MID(A1,ROW($A$1:$A$20),1)))

前回の数式では数字前の文字数変化に対応できません。

どうも失礼しました。m(_ _)m
    • good
    • 0

数字と文字をわけるのではありませんが、ご提示のように左3文字が数字、残りが文字なら


=LEFT(A1,3)
で、左の3文字を
=MID(A1,4,LEN(A1))
で、残りを取得できます。
「数字部分のみ別のセルに移動したいです。」の回答画像2
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!