• ベストアンサー

エクセル:1セル中の複数行の文字列を分割するには?

Altキー+エンターでセル内に複数行の文字列を入れました。 これを分割したいのですが、どのようにすれば良いでしょうか? たとえば、 「 日本   東京都   港区  」 というセルの上から2行目まで取り出して 「 日本   東京都 」 という感じにしたいのです。このようなことは可能なのでしょうか?どなたか教えて頂けませんでしょうか?お願いします。

noname#91219
noname#91219

質問者が選んだベストアンサー

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.2

#1です。 1行目のみ =LEFT(A1,FIND(CHAR(10),A1)-1) 2行目のみ(1行目が既にA2に抽出済みとして) =MID(LEFT(A1,FIND(CHAR(10),A1,LEN(A2)+2)-1),LEN(A2)+2,LEN(A1))

noname#91219
質問者

お礼

助かりました。ご回答ありがとうございます。

その他の回答 (2)

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.3

「 日本   東京都   港区  」 ◆上のように、入力されていて 「 日本   東京都 」 =LEFT(A1,FIND("♪",SUBSTITUTE(A1,CHAR(10),"♪",2))-1) 「 日本 」 =LEFT(A1,FIND(CHAR(10),A1)-1) 「 東京都 」 =REPLACE(LEFT(A1,FIND("♪",SUBSTITUTE(A1,CHAR(10),"♪",2))),1,FIND(CHAR(10),A1)-1,) 「 港区 」 =REPLACE(A1,1,FIND("♪",SUBSTITUTE(A1,CHAR(10),"♪",2)),)

noname#91219
質問者

お礼

お礼が遅くなりすみません。ご回答ありがとうございます。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

上記がA1として =LEFT(A1,FIND("_",SUBSTITUTE(SUBSTITUTE(A1,CHAR(10),"|",1),CHAR(10),"_")&"_")-1) ※SUBSTITUTE関数で改行[CHR(10)]を置換する文字は元の文字には絶対使わない文字にしてください。 ※但し、"*","?","~"は使わないでください。

noname#91219
質問者

お礼

ご回答本当にありがとうございます。とても複雑ですが方法があるのですね。例では2行目までとしていますが、1行目までなどとする方法もよろしければ教えて頂きたいです。 2行目だけ、という取り出し方もあるのでしょうか? お時間があれば、是非教えて頂きたいです。 本当にありがとうございます。

関連するQ&A

  • Excelで1つのセルに入れた複数行の長い文字列をセルの高さを変えずに表示したい

    こんにちは。 Excelについての質問です。 お分かりになる方がらっしゃいましたら教えていただけると幸いです。 Excelのシートに、何行かにわたる長い文字列をコピーしたものを 1つのセルに貼り付けて、全て表示させたいのです。 その時、シートの幅や高さは変えずに、 セル内で「Alt+Enter」で改行されてその高さに収まらない文字列は、 そのまま直下の空いているセルに表示させたいのですが、これは可能でしょうか。 「折り返して全体を表示する」はオフの状態です。 この設定で1行だけの文字列だと幅以上の文字列は自然に横の空白のセルに流れてくれますよね? これを、「Alt+Enter」の複数行ver.でやりたいのですが、 このようなことは可能なのでしょうか。 質問が分かりにくくて申し訳ありません。 他にも、いい方法をご存知でしたらアドバイスをお願いいたします。

  • エクセルで行の分割をするには

    エクセルで行の幅変えないで2分割するにはどうしたらよいでしょうか。 セルならAltキーを押しながらEnterキーを押せば2分割になるんですが。 宜しくお願いします。

  • 「Alt+Enter」で折り返した文字列。1行目は何文字? 2行目は何文字?

    セルの中に、「ALt+Enter」で複数行に折り返している文字列があって、 1行目は何文字で、折り返した2行目は何文字、3行目は何文字… とカウントさせたいのですが…??? 無理??? できましたら、具体的に記述して教えてください。

  • 一つのセルに複数行を入力すると最後の1行を印刷しないことがある

    Excel97ですが、Alt+Enterで改行しながら、一つのセルに複数行を入力します。そのセルの列の行幅は書式で自動にしてあるので、文字の行を増やしていっても、ちゃんとセルの中に収まっています。ところが、印刷プレビューや印刷すると、所々のセルは、約1行分が見えません。Alt+Enterで1行分余計に空白を設けてやると、空白のない、ぴったりの行だけ印刷できます。 プレビューでも起こるのでプリンタのせいではありません。どこのセルがどうやるとそういう現象になるのか分からないので、全部のセルにAlt+Enterで1行分余計に空白を入れるのも面倒です。なぜ、こんな現象が起こるのか、また対応はあるのでしょうか?

  • 2行にわたるセル内の文字列判定について

    Altキーによって1つのセル内に2行にわたる文字列が入力 してある場合、その内容と等しいかどうかを判定する方法を 教えて下さい。

  • EXCEL 文字列分割について

    EXCEL2003を使用しています。 1つのセルに文字列が入力されており、 それを決まったバイト数ずつ別のセルに分割したいと考えています。 例)A1の文字列を6バイトずつ分割したい A1:東京都文京区 ↓ B1:東京都 C1:文京区 これを実現する為に B1に「=LEFTB(A1,6)」 C1に「=MIDB(A1,7,6)」という数式を入力しました。 A1の文字列が全角のみ(または半角のみ)なら 上記の数式で問題ないと思うのですが、 分割対象の文字列は全角と半角が混ざっており、 例えばA1の値が 「a東京都文京区」 というようなものだった場合、 B1:a東京 C1:文京 となり、元の文字列にある「都」の文字が消えてしまいます。 元の文字列が上記の様な場合には B1:a東京 C1:都文京 というように値が返されるようにしたいのですが、 どのように実現したらよいでしょうか?

  • Excelでセルを2行に

    通常、Excelで1セルを2行にしたいときには、ALT + Enter を入力しますよね。 今回は、2つのセルに入っている文字列を1セルにまとめて2行に表示したいのですが… つまりA1に入ってる「OK」とB1の「Wave」をC1セルにまとめるときは  「=A1&B1」ですが、「OK」と「Wave」を2行にしたいのです。 おそらく「=A1&????&B1」という形で、????の場所にALT + Enter に相当する何かを入れるのだろうとは、思うのですが… よろしくお願いいたします。

  • エクセルで,複数行のままコピーしたい

    エクセルで,ある1つのセル(例えばA1)に,複数行になっている文字列があります(Alt+Enterにより,セル内で改行したものです). 別のセル(例えばB2)に「=A1」と入力すると,B2にはA1にある文字列が表示されるのですが,改行が消えてしまい,1行で表示されてしまいます. 改行を消さずにコピーする方法はないでしょうか.教えてください.エクセルのバージョンは2010です. よろしくお願いします.

  • エクセルの一つのセルに複数行の文字を入れる方法

    エクセルの一つのセルに複数行の文字を入れる方法を教えてください。 メモ帳などで入力したこのような文章をエクセルに挿入したいのです。 1.あいうえお   あいうえお   あいうえお そのままコピーしてエクセルに貼り付けたら 一つのセルには入らず3行分にまたがってはいりました。 セルの結合をするのかしら?と思って結合したら1行目の「1.あいうえお」が真ん中に残って 2,3行目の文字が消えてしまいました。 このような文章をこのままの状態で一つの列の一つの行(A列1行目など)に入れるには どのようにすればできるのでしょうか?

  • 指定した文字列を含む行から、指定した文字列を

    含む行まで、全ての行を抽出して別ファイル(名前は元ファイルと同じ)としたいのです。 対象ファイルに結果を上書きでもかまいません。 指定したフォルダの中にある複数のフォルダ各々に1つずつ入っているテキストファイルが対象になります。 例) 東京都 新宿区 <start123AAA> 東京都 港区 <end>AAABBB 東京都 目黒区 どのファイルにも必ず<start と<end の文字列があります。(必ず1組です) <start の文字列を含む行から <end の文字列を含む行までを 抽出したいのです。 (欲しい結果↓) <start123AAA> 東京都 港区 <end>AAABBB フリーのエディタソフトのgrep、grepのマクロ、バッチでできないものかと試してみているのですが どうしてもうまくいきません。 抽出したい範囲、削除する範囲には禁則文字?が入っているのでバッチは難しいのでしょうか? できればバッチで処理できればなと思っているのですが、うまくいきません。 (<>!""/ あたりが入っています。別の文字に置き換えることは可能です) 範囲を抽出ではなく、 <startを含む行の一つ上の行から前を全て削除 <endを含む行の一つしたの行から後を全て削除 する方法や VBAで、スタート行をとエンド行をSearchして抽出する方法など ご教授いただきたくお願い致します。

専門家に質問してみよう