- ベストアンサー
漢字と数字が混じった文字列を漢字と数字に分けたい
Aを漢字、Bを数字とすると AABBBABBBBAAAのように漢字と数字が混ざった文字列がセルA1にある場合に、 セルB1、C1、D1、E1・・・に AA、BBB、A、BBBB、AAA、・・・というように、文字を切り分けたいのですが、どうすれば出来るでしょうか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
関数では無理なのでVBAで組んでみました。 Alt+F11キーでVisualBasicEditorを呼び出し、メニューの挿入で標準モジュールを表示させたら、以下のコード(Sub~End Sub)をコピペしてみてください。 Alt+F11キーで再度ワークシートに戻ったら、メニューのツール、マクロ、マクロで出てきたTEST01を実行します。 Sub test01() Dim x As String Dim c As Integer x = Cells(1, 1).Value c = 2 For i = 1 To Len(x) If i > 1 Then If Not (IsNumeric(Mid(x, i, 1))) Then If IsNumeric(Mid(x, i - 1, 1)) Then c = c + 1 End If Else If Not (IsNumeric(Mid(x, i - 1, 1))) Then c = c + 1 End If End If End If Cells(1, c).Value = Cells(1, c) & Mid(x, i, 1) Next End Sub
その他の回答 (4)
- mu2011
- ベストアンサー率38% (1910/4994)
次の方法は如何でしょうか。 1.該当A1セルをクリック 2.データ→区切り位置 3.「スペース・・・」を選択し、次へ 4.データプレビュー上の各データの区切り位置をクリックし、完了
お礼
回答ありがとうございます。 スペースが無いので困っています。
#3です。 ちなみに、前述のように文字列の文字数が固定ならば B1=LEFT(A1,2) C1=MID(A1,LEN(B1)+1,3) D1=MID(A1,LEN(C1&B1)+1,1) E1=MID(A1,LEN(B1&C1&D1)+1,4) F1=RIGHT(A1,3) でOKですが、いかがでしょう?
お礼
回答ありがとうございます。 固定ではないので困っています。
>AABBBABBBBAAAのように漢字と数字が混ざった文字列 この文字列の文字数及び、漢字と数字の配列は固定でしょうか? その場合、LEFT関数/RIGHT関数などの組み合わせにより抽出が可能かも。
お礼
回答ありがとうございます。 固定ではないので苦労してます。
- popesyu
- ベストアンサー率36% (1782/4883)
エクセルには標準では正規表現ができませんので、関数を組み合わせて作るのは無理でしょう。VBAが組めるのなら自作の関数を作ってしまえば済む問題なんですが。 次善の案としては「AA-BBBB-A-BB」のように特定の文字列で間を結ぶようにするとか(これならFIND関数やMID関数を組み合わせるだけで可能です)ぐらいでしょうか。
お礼
回答ありがとうございます。 入手したデータが大量にあるので、-を手で追加することが出来ないのです。
お礼
回答ありがとうございます。 うまく作動しました。 マクロを作ることは大変なのでしょうが、 出来たマクロはシンプルで良いですね。