- ベストアンサー
数字部分のみ別のセルに移動したいです。
複数のセルの、数字部分のみ別のセルに移動したいのですが、 教えていただけますでしょうか? 例 セルA aaa1234 bbb5678 ccc9874 ddd5642 ↓ セルA セルB aaa 1234 bbb 5678 ccc 9874 ddd 5642 このように、文字と数字を分けたいです。 よろしくお願いします。
- みんなの回答 (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
お礼
ありがとうございます! 数値位置が決まっていなかったため、2つ目の方法で試しましたところ、成功しました。 何時間かかるかわからない作業が一瞬で片付きました。 感動です。誠にありがとうございました。