スプレッドシート セル内の改行数を数える。→ 改行をキーとして分割。

スプレッドシート・・・すごく活用しています。
メモ代わりに使っているため、1つのセルに複数行記述したり、先頭にキーワードを入れて記述したりしています。
そのため
  • セル内の行数を数える。
  • セル内の文を1行づつ、分割する。

 が必要になりました。

セル内の行数を数える

 以下の式で、行数がわかります。

  =LEN(A1)-LEN(SUBSTITUTE(A1,CHAR(10),""))

概要説明
  • 改行を数えれば行数がわかる。
  • 元の文字から、改行を覗いた文字を引くことにより改行数を出しています。
処理の説明
  1. 文字数を出す。(LEN(A1))
  2. SUBSTITUTEで該当文字(改行)を""に変更。(SUBSTITUTE(A1,CHAR(10),""))
  3. 2の文字数を出す(LEN(SUBSTITUTE(A1,CHAR(10),"")))
  4. 1と3の差を出す。これが改行数=行数となります。
    ただし、最終行の最後に改行が必要となります。最終行に改行を入れない場合は、4に 1を足してください。

参考 【エクセル2010】セル内改行の個数を数える

応用として、セル内の特定の文字の数を数える

 以下の式で、「てすと」がいくつあるかわかります。

  =(LEN(A1)-LEN(SUBSTITUTE(A1,"てすと",""))/LEN("てすと")

行数との違いは、/LEN("てすと") です。改行は、1文字となります。

特定の文字を数える場合は、対象文字の長さを割る必要があります。

 
改行を , に変更すると セル内の文章を開業ごとに分割できる
 

やっぱり、セルの内容を1行づつ分割したい。

 以下の式で、セルの内容を分割して表示できます。

  =split(A1,char(10))
 
こんな方法があったとは、驚きました。