「LEN関数を使っているのに、原稿用紙や投稿管理ツールの文字数と一致しない」というトラブルは、SNSのサポートコミュニティや知恵袋でも頻繁に投稿される典型的な悩みです。取材班がIT企業のWebマーケティング部門にヒアリングを行ったところ、原因の9割以上が「目に見えないスペース」や「セル内改行」のカウントミスに起因していました。
LEN関数はスペース(全角・半角)や改行コード(CHAR(10))も律儀に「1文字」として数え上げます。これらを排除して実質的なテキスト量だけを算出するには、文字列置換を行うSUBSTITUTE関数文字数計算テクニックが必須となります。
まず、スペースを一切カウントしないエクセル空白除外カウントを行う場合、SUBSTITUTE関数を使って「空白を何もない状態("")に置き換えた文字列」を作り出し、その長さをLEN関数で測ります。半角と全角の両方のスペースを完全に除去するには、以下のように数式をネスト(入れ子)にします。
=LEN(SUBSTITUTE(SUBSTITUTE(A2," ","")," ",""))
さらに厄介なのが、Alt+Enterで挿入されたセル内改行です。画面上は見えにくいため見落とされがちですが、エクセル内部では改行コード(Windows環境では文字コード10)として確実に1文字分占有しています。この改行除外の文字数計算を行うには、次のように記述します。
=LEN(SUBSTITUTE(A2,CHAR(10),""))
現場の実務では「半角スペース、全角スペース、改行のすべてを除外した純粋な文字数」が求められるケースが大半です。その場合は、以下のようにSUBSTITUTE関数を3重に重ねることで、いかなるノイズも排除した完璧な文字数を瞬時に抽出できます。
=LEN(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2," ","")," ",""),CHAR(10),""))