プロが教えるわが家の防犯対策術!

Aを漢字、Bを数字とすると

AABBBABBBBAAAのように漢字と数字が混ざった文字列がセルA1にある場合に、

セルB1、C1、D1、E1・・・に
AA、BBB、A、BBBB、AAA、・・・というように、文字を切り分けたいのですが、どうすれば出来るでしょうか?

A 回答 (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
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
うまく作動しました。
マクロを作ることは大変なのでしょうが、
出来たマクロはシンプルで良いですね。

お礼日時:2006/03/30 18:55

次の方法は如何でしょうか。



1.該当A1セルをクリック
2.データ→区切り位置
3.「スペース・・・」を選択し、次へ
4.データプレビュー上の各データの区切り位置をクリックし、完了
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
スペースが無いので困っています。

お礼日時:2006/03/30 18:57

#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ですが、いかがでしょう?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
固定ではないので困っています。

お礼日時:2006/03/30 18:56

>AABBBABBBBAAAのように漢字と数字が混ざった文字列


この文字列の文字数及び、漢字と数字の配列は固定でしょうか?
その場合、LEFT関数/RIGHT関数などの組み合わせにより抽出が可能かも。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
固定ではないので苦労してます。

お礼日時:2006/03/30 18:56

エクセルには標準では正規表現ができませんので、関数を組み合わせて作るのは無理でしょう。

VBAが組めるのなら自作の関数を作ってしまえば済む問題なんですが。

次善の案としては「AA-BBBB-A-BB」のように特定の文字列で間を結ぶようにするとか(これならFIND関数やMID関数を組み合わせるだけで可能です)ぐらいでしょうか。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
入手したデータが大量にあるので、-を手で追加することが出来ないのです。

お礼日時:2006/03/30 18:54

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

このQ&Aを見た人はこんなQ&Aも見ています