[[20170616100219]] 『セルの分割』(初心者) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『セルの分割』(初心者)

A1に「ああ111いい222」
A2に「うう33」
A3に「ええ44おお」

という文字列が入っています。
この場合、
A1→ああ,111,いい,222
A2→うう,33
A3→ええ,44,おお
と分割することはできるでしょうか?
文字数や数字の桁数は変動します。

よろしくお願いします。

< 使用 Excel:Excel2010、使用 OS:unknown >


分割するルールを教えてください。同じ文字が続いていたらOKで、違う文字ならカンマを挿入、ですか? それは実用性が無さそうですが…。 それとも、漢字と数字で判断するようにも見えますが、全角数字はどっちに分けますか? または、全角数字はあり得ない? 英字もあり得ない?

あと、数式で処理したいのか、マクロで処理したいのか、どちらでも良いのか、手作業の手順を知りたいのか、どれに該当しますか?
(???) 2017/06/16(金) 10:20


もひとつ疑問点。
文字列には半角や全角のスペースは含まれていますか? スペース無し条件なら、マクロコーディングが楽になります。
(???) 2017/06/16(金) 10:24

分割ルールですが、
文字列と数字を別セルに分けたいのです。(カンマはセルのイメージでした。。分かりづらくてすいません)
つまりセル値の先頭から見て
数字が出現するまでの文字列をセルA2
数字から文字列が出現するまでの数字をセルA3
数字が出現するまでの文字列をセルA4
最後の数字をセルA5

という感じです。
できれば関数で処理したいですが、マクロでも問題ありません。
また追加でご質問いただいた件ですが、スペースは含まれていません。
よろしくお願いいたします。
(初心者) 2017/06/16(金) 10:30


ならば、全角数字は漢字扱いしたマクロ例なぞ。ちなみに、A1セルを分解したのがA2:A5セルではなく、B1:E1セルの間違いですよね? 元データはA列に、縦に並んでいるのですよね?

 Sub test()
    Dim i As Long
    Dim j As Long
    Dim cw1 As String
    Dim cw2 As String
    Dim vw As Variant

    For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
        cw1 = Cells(i, "A").Text
        cw2 = ""
        For j = 1 To Len(cw1) - 1
            cw2 = cw2 & Mid(cw1, j, 1)
            If Mid(cw1, j, 1) Like "[0-9]" And Mid(cw1, j + 1, 1) Like "[!0-9]" Or _
               Mid(cw1, j, 1) Like "[!0-9]" And Mid(cw1, j + 1, 1) Like "[0-9]" Then
                cw2 = cw2 & " "
            End If
        Next j
        cw2 = cw2 & Right(cw1, 1)
        vw = Split(Trim(cw2), " ")
        Cells(i, "B").Resize(1, UBound(vw) + 1).Value = vw
    Next i
 End Sub
(???) 2017/06/16(金) 10:40

ありがとうございます!!!
求めていたことができました!!
また、ご指摘いただきました記載ミスもその通りです!!
お時間いただきありがとうございました。
本当に助かりました!!
(初心者) 2017/06/16(金) 10:55

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.