エクセルの検索置換についての質問です。


A1セルに以下のような文字列があります。

A1セル:あああ、いいい、ううう、えええ

これを

A1セル:あああ
A2セル:いいい
A3セル:ううう
A4セル:えええ

のように、セル内の文字列を複数のセルに分割したいのですが、このような処理はexcelで可能なのでしょうか?

「、」を改行に置換して、改行に置換すればいいのかな?と思いましたが、やり方がよくわかりませんでした。

検索置換、または数式を用いる方法どちらでも構いませんので、何かいい方法がありませんでしょうか?

回答の条件
  • 1人2回まで
  • 登録:2006/09/02 16:32:06
  • 終了:2006/09/04 13:24:07

回答(4件)

id:hive7134 No.1

hive7134回答回数167ベストアンサー獲得回数162006/09/02 16:52:39

ポイント30pt

A1セルを選択した状態で、

  1. [データ]メニュー→[区切り位置]で区切り位置指定ウィザードを立ち上げる
  2. ウィザードで「カンマやタブなどの~」にチェックをつけ[次へ]ボタン
  3. [その他]にチェックを入れ、右隣のテキストボックスへ「、」を入力し[完了]ボタンを押す

これでA1の中身がA1~D1 に分かれます。



縦に分割したい場合は、「行列を入れ替えて貼り付け」を利用します。

  1. A1~D1の4セルを選択し、右クリック→[コピー]
  2. 適当なセルで右クリック→[形式を選択して貼り付け]
  3. [行列を入れ替える]にチェックを入れて[OK]を押す

以上です。ちょっと回りくどいかな…^^;;;

id:torii_koichi

区切り位置指定ウィザードという方法があるとは知りませんでした。

ご指摘の通り、「回りくどい」かもしれませんが、確実な方法かもしれませんね。

回答ありがとうございました!

2006/09/04 13:13:29
id:ardarim No.2

ardarim回答回数896ベストアンサー獲得回数1442006/09/02 17:13:15

ポイント30pt

置換ではできないと思いますが、数式なら例えばこういう風にできます。


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は非表示にするなどすれば画面上は見えなくなるのですっきりします。

id:torii_koichi

教えていただいた数式をコピペして使って見ました。

式のコピペで他のセルにも代用できそうですね。

回答ありがとうございました!

2006/09/04 13:20:47
id:vbanboo No.3

banboo回答回数34ベストアンサー獲得回数52006/09/02 17:16:06

ポイント30pt

マクロ使わずセルだけで方法を考えてみました(コマンド一発は思いつきませんでした)。

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セルから下)をコピーし、そのまま値貼り付けすると、数式ではなく文字になります。

賢い関数があるかもしれませんが、処理対象やデリミタの文字が任意でもできることを考えると、こんなものになってしまいました。ちょと恥ずかしい方法かも。

id:torii_koichi

「コマンド一発」とかはやはりムリそうですね。

回答ありがとうございました!

2006/09/04 13:22:01
id:taknt No.4

きゃづみぃ回答回数13539ベストアンサー獲得回数11982006/09/02 17:16:54

http://office-ho.com/requestmail/2006/01/post_20.html

データ→区切り位置で、区切ることができます。

区切り文字を「、」で指定してあげたらいいでしょう。

id:torii_koichi

回答者の一番の方と同じ回答ですね。

2006/09/04 13:22:24
  • id:taknt
    >回答者の一番の方と同じ回答ですね。

    回答を書くとき、一番の回答は見てなかったですね。

    基本的には、区切り位置が一番だと思いますよ。
    ほかの数式を使う方法は、いまいちだと思いますね。

この質問への反応(ブックマークコメント)

トラックバック

  • Excel関数(文字列置換) Excel関数の使い方 2008-05-04 22:04:52
    今回は、文字列を置換する関数をご紹介します。「=SUBSTITUTE(元の文字列,検索文字,置換文字,対象)」元の文字列の一部又は複数文字をある文字に置換する関数・・・
「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません