A1セルに以下のような文字列があります。
A1セル:あああ、いいい、ううう、えええ
これを
A1セル:あああ
A2セル:いいい
A3セル:ううう
A4セル:えええ
のように、セル内の文字列を複数のセルに分割したいのですが、このような処理はexcelで可能なのでしょうか?
「、」を改行に置換して、改行に置換すればいいのかな?と思いましたが、やり方がよくわかりませんでした。
検索置換、または数式を用いる方法どちらでも構いませんので、何かいい方法がありませんでしょうか?
A1セルを選択した状態で、
これでA1の中身がA1~D1 に分かれます。
縦に分割したい場合は、「行列を入れ替えて貼り付け」を利用します。
以上です。ちょっと回りくどいかな…^^;;;
置換ではできないと思いますが、数式なら例えばこういう風にできます。
A | B | |
---|---|---|
1 | あああ、いいい、ううう、えええ | |
2 | =IF(ISERROR(FIND("、",A1)),A1,LEFT(A1,FIND("、",A1)-1)) | =IF(A1=A2,"",RIGHT(A1,LEN(A1)-LEN(A2)-1)) |
3 | =IF(ISERROR(FIND("、",B2)),B2,LEFT(B2,FIND("、",B2)-1)) | =IF(B2=A3,"",RIGHT(B2,LEN(B2)-LEN(A3)-1)) |
4 | =IF(ISERROR(FIND("、",B3)),B3,LEFT(B3,FIND("、",B3)-1)) | =IF(B3=A4,"",RIGHT(B3,LEN(B3)-LEN(A4)-1)) |
5 | … | … |
行3の数式を、行4、行5、…とコピーすることで「、」の数がいくつでも対応できます。
この例では列Bを中間結果を入れるのに使っていますが、中間結果を使わず、列Aだけで済ますこともできます。ただし数式がもっと複雑で分かりにくくなります。
列Bは非表示にするなどすれば画面上は見えなくなるのですっきりします。
教えていただいた数式をコピペして使って見ました。
式のコピペで他のセルにも代用できそうですね。
回答ありがとうございました!
マクロ使わずセルだけで方法を考えてみました(コマンド一発は思いつきませんでした)。
A1セル あああ、いいい、ううう、えええ ・・・処理対象文字
A2セル 、 ・・・ 区切り(デリミタ)文字指定
A3セル 0 ・・・ 検索開始位置の初期値(ゼロ)
A4セル =IF(ISERROR(FIND($A$2,$A$1,A3+1)),LEN($A$1)+1,FIND($A$2,$A$1,A3+1))
B4セル =IF(A3=A4,"",MID($A$1,A3+1,A4-A3-1))
ここまで入力したら、A4-B4セルを選択してオートフィルで適当な数まで分割文字を表示するセルを増やしてください。
その後分解した文字列(B4セルから下)をコピーし、そのまま値貼り付けすると、数式ではなく文字になります。
賢い関数があるかもしれませんが、処理対象やデリミタの文字が任意でもできることを考えると、こんなものになってしまいました。ちょと恥ずかしい方法かも。
「コマンド一発」とかはやはりムリそうですね。
回答ありがとうございました!
http://office-ho.com/requestmail/2006/01/post_20.html
データ→区切り位置で、区切ることができます。
区切り文字を「、」で指定してあげたらいいでしょう。
回答者の一番の方と同じ回答ですね。
区切り位置指定ウィザードという方法があるとは知りませんでした。
ご指摘の通り、「回りくどい」かもしれませんが、確実な方法かもしれませんね。
回答ありがとうございました!