機能と数式 | VBA | セミナー | オンラインソフト | お問い合わせ | その他
Top > Excel > 機能と数式

セル内改行の前後で分割する



セルの中で改行するには、改行したいところでAlt+Enterキーを押します。
下図は「田中」「Alt+Enterキー」「亨」と入力しました。



このように、セル内で改行されたデータは、実際には改行位置に改行コードが含まれています。
Excelの場合、Alt+Enterキーを押すと、16進数で0Aという制御コードが入ります。
この0Aは、CHAR関数で表すとCHAR(10)です。したがって、セルが改行されているかどうかは、次のように判定できます。



=IF(ISERROR(SEARCH(CHAR(10),B3)),"改行されてない","改行されてる")

SEARCH関数は、検索文字が見つかったとき、その位置を返しますから、次のように改行されている位置を調べることも可能です。



=SEARCH(CHAR(10),B4)&"文字目が改行"

ということは、改行の前と後ろを、それぞれ抜き出すこともできるということです。



=LEFT(B5,SEARCH(CHAR(10),B5)-1)
=MID(B5,SEARCH(CHAR(10),B5)+1,256)

もちろん、実際にはまず「改行が含まれているかどうか」をIF関数で判定した方がいいです。

これを応用すると、たとえば次のようなレイアウトで表引きができます。



=VLOOKUP(LEFT(A3,SEARCH(CHAR(10),A3)-1),$A$8:$B$12,2)*MID(A3,SEARCH(CHAR(10),A3)+1,256)

とか



=INDEX($B$8:$F$12,
        MATCH(MID(A3,SEARCH(CHAR(10),A3)+1,256),$A$8:$A$12,0),
        MATCH(LEFT(A3,SEARCH(CHAR(10),A3)-1),$B$7:$F$7,0)
      )

みたいに。

まぁ、無理に1セルで計算しなくてもいいですけど。






このエントリーをはてなブックマークに追加