Excel で改行を入れる補助セルを作る

タイトルで何を言っているのか良く分からないと思うので、順を追って説明する。

…という話。

早速関数を紹介しよう。

A1 セルは、セル結合しつつ折り返し表示設定をして、改行を含む文章を書いているものとする。

=REPT(CHAR(10), LEN(A1) - LEN(SUBSTITUTE(A1, CHAR(10), "")) + 1)

この数式を、参照している A1 セルと同じ行、つまり Z1 セルなど、端の方に置いておき、そのセルに「折り返して全体を表示する」設定をしておく。

この数式内にある CHAR(10) とは、改行コードのこと。対象セルの文字数から改行コードを除いた文字列を除いており、これが改行数となる。これに + 1 して改行数を調整しておく。この改行数の分だけ CHAR(10) を生成している。

この数式が埋められているセルはセル結合しないで置いてあるので、行の高さの自動補正をする時にこのセルの内容が突っ張り棒として利用され、結果的に A1 セルの内容がちゃんと表示できるようになる、というワケ。

対象セルの「改行の数」を拾っているため、改行せずに折り返している文章だと表示上の行数を正確に判定できないのが難点…。