- ベストアンサー
Excelのセル内で改行してある文字を別セルへ
A列のセル内に例えば次のように住所情報があります。 XX市XX町1-2-3 XXビル1F 「XXビル1F」は改行して入力されています。 「XXビル1F」のような改行してある2行目の文字列をA列から消してB列に移動させる方法(関数等)を教えてください。 よろしくお願いいたします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
A列のセルの文字列の改行コードをカンマ「,」に置換し、 「データ」→「区切位置」を使って、「,」で区切ります。 具体的には、 (1)A列の文字列が入力されたセル範囲を選択、 (2)「置換」ウイザードを起動、 (エクセルのバージョンにより、呼び出し方が違いますので手順は省略します。) (3)置換する文字列に「CTL+J」を入力、(「CTL+J」は改行コードです。入力しても何も表示されません。) (4)置換後の文字列に「,」を入力して、「すべて置換」ボタンを押します。 以上で、A列の選択したセルの文字列の改行がカンマに置換されます。相変わらず2行に表示されているかも知れませんが、それは、「書式」が「折り返して全体を表示」になっているためです。 (5)「検索と置換」ダイアログボックスを閉じ、 (6)A列のセル範囲が選択された状態で、(範囲が選択されていない場合は再選択して)「データ」「区切位置」ウイザードを起動、 (7)元データの形式では、「カンマやタブなどの区切文字によって....」をチェックして「次へ」、 (8)「カンマ」をチェックして次へ、 (9)「完了」ボタンを押してウイザード終了 この方法は、Excel 2003, 2010, 2013 で試し、いずれもうまくいきました。 ポイントは、(3)の手順です。「CTL+J」を入力してもダイアログボックスに何も表示されませんので、何も入力されていないと思って、2度、3度とくりかえすと、改行コードが複数入力され、検索にヒットしません。 一旦「検索と置換」ウイザードを閉じて、やり直す場合も、「置換する文字列」、「置換後の文字列」のボックスに、最前入力した値が残っています。そこに更に入力すると、何が入力されているのかわけがわからなくなってしまいます。 どうしてもヒットしないときは、一度エクセルを閉じて再起動すると良いかもしれません。
その他の回答 (5)
- chie65536(@chie65535)
- ベストアンサー率44% (8755/19867)
表が、1行目から200行目まであると仮定します。 1.作業列として、A列の右に2列挿入して、新しくB列、C列を作ります。 2.B1に =IF(ISERROR(SEARCH(CHAR(10),A1)),A1,LEFT(A1,SEARCH(CHAR(10),A1)-1)) という式を書きます。 3.同様にC1に =IF(ISERROR(SEARCH(CHAR(10),A1)),"",RIGHT(A1,LEN(A1)-SEARCH(CHAR(10),A1)+1)) という式を書きます。 4.B1、C1を選択して「Ctrl+C」でコピーして、B1:C1を点滅表示させます。 5.B2~C200を選択して「Enterキー」で貼り付けします。 6.「シートの列見出し」を範囲選択して「B列とC列の全体を範囲指定」し「Ctrl+C」でコピーし、B列C列全体を点滅表示させます。 7.そのまま「編集」→「形式を選択して貼り付け」→「値」で貼り付けします。 8.B列全体を範囲指定して「Ctrl+C」でコピーし、B列全体を点滅表示します。 9.A列全体を範囲指定して「Enterキー」で貼り付けします。 10.列削除でB列を削除します。 これで、A列に1行目のデータだけ、B列に2行目のデータだけが入ります。 8~10の手順は、ちょっと「回りくどい」ですが、もし「A列の住所データを参照しているセルがあった場合に、困った事になる」ので、こういう事をしています。 住所データを参照しているセルが無ければ、8~10の手順の代りに 8その2.列削除でA列を削除します。 だけで済みます。
- kichikuma
- ベストアンサー率18% (202/1080)
根本的に関数が何だかわかっていないようですが、中学生で習ったものと同じです。 何らかの条件を与えられて結果が決まるもの。 結果を表示するのも、条件の元となる値が入っているのもExcelではセルが単位です。 つまり、元々改行の入った住所のあるセルの値に対して、何らかの関数で処理したものを別のセルに出力することしか出来ない。 以下、関数等の等に該当するかもしれない方法です。 希望の事をするにはVBAと言うのを使えば出来ます。 操作を自動化することや、Excelのセルの値を元に処理をすることが出来ます。 こちらを勉強して実装されるのが一番です。 勉強した上で考える必要がありますが、 考える必要がある部分のみ書いておきます。 A列のセルを上から順に、値が入っているセルである間以下の処理を繰り返す。 上記のセルについて改行が含まれている場合 改行で値を分割して分割された1つ目の値をAn(nは行数)に上書きし、Bnに2つ目の値を入れる。
- naoto0216
- ベストアンサー率46% (183/391)
#2です。 「移動させる方法」だったんですね。勘違いしてました。 移動はできないので、先ほどの関数を応用して別の列に「XX市XX町1-2-3」だけ抜き取るように作ってみて下さい。
- naoto0216
- ベストアンサー率46% (183/391)
もっといいやり方があるかもしれませんが、B列に =MID(A1,SEARCH(CHAR(10),A1)+1,(LEN(A1)-SEARCH(CHAR(10),A1))) とやってみて下さい。 MIDの開始位置として改行位置+1文字目から(例だと改行位置が12文字目なので13文字目から)、抜き取る文字数を全文字数から改行位置を引いた数(18文字-12文字目=6文字)としてます。
- Chiquilin
- ベストアンサー率30% (94/306)
何でも関数でやりたいと考える人が多いですが ワークシート関数は「計算結果を 返す」こと以外できません。「A列から消して」は無理です。データの区切り位置 でやって下さい。 A列は残して 「XX市XX町1-2-3」を B1 「XXビル1F」を C1 ならできます。
お礼
ありがとうございます。ご連絡遅くなりましたが、この方法で実行できました。