Excel関数 逆引き集 | 文字列の妥当性チェック → LEN

Excel
スポンサーリンク

概要

「このIDは桁数が正しいか?」
「郵便番号が7桁になっているか?」
「パスワードは8文字以上あるか?」

こういった “文字列としての妥当性チェック” をするときの基本になるのが LEN 関数(文字数カウント) です。

LEN は
「このセルには何文字入っているか?」
を数えてくれるだけの、とてもシンプルな関数ですが、
IF などと組み合わせることで、入力チェックに大活躍します。

ここでは、プログラミング初心者向けに、
LEN を使った妥当性チェックのパターンとテンプレートを、例題つきで解説します。


LEN 関数の基本

LEN の書式はとても簡単です。

=LEN(文字列)

A2 に「ABC」が入っている場合、

=LEN(A2)

の結果は 3 になります。

ポイントは、
「数値の見た目」ではなく「セルの中身が文字列として何文字か」を数える、ということです。

例えば、A2 に 00123 と入力されていても、
実際のセルの中身が「文字列の 00123」なら 5、
数値の 123 として扱われていれば 3、
というように、セルの状態によって結果が変わることがあります。

妥当性チェックに使うときは、
「セルの表示形式」「前ゼロが必要か」「文字列として扱うか」
をセットで意識しておくと、迷いにくくなります。


桁数が「ちょうど○桁」かどうかのチェック

一番よく使うのが

「ちょうど 〇 桁のときだけ OK」

というパターンです。

例:郵便番号が7桁かどうかをチェック

A2 に郵便番号が入っているとします。

7 桁なら TRUE、それ以外は FALSE にしたいときはこう書きます。

=LEN(A2)=7

IF と組み合わせて「OK / NG」を文字で出すならこうです。

=IF(LEN(A2)=7,"OK","NG")

これで、桁数だけは簡単にチェックできます。


桁数が「以上/以下」かどうかのチェック

「パスワードは 8 文字以上にしたい」
「名前は 2 文字以上 20 文字以下にしたい」
といった条件も、LEN と比較演算子で表現できます。

例:パスワードが 8 文字以上かどうか

A2 の文字数が 8 文字以上なら TRUE、それ以外は FALSE。

=LEN(A2)>=8

メッセージを出すなら:

=IF(LEN(A2)>=8,"文字数OK","短すぎます")

例:名前が 2〜20 文字の範囲かどうか

=AND(LEN(A2)>=2, LEN(A2)<=20)

IF と組み合わせると:

=IF(AND(LEN(A2)>=2, LEN(A2)<=20),"OK","文字数が不正です")

このように、
「最小文字数」「最大文字数」を使って妥当性チェックができます。


LEN と TRIM を組み合わせて「余計な空白を無視」する

入力チェックのときによくある問題が、
「スペース(空白)が混ざっている」というケースです。

例えば、A2 に「 ABC 」(前後にスペースあり)が入っていると、
LEN(A2) は 5 になりますが、
実際に意味のある文字は「ABC」の 3 文字だけです。

こういうときは TRIM を併用します。

=LEN(TRIM(A2))

TRIM は、
先頭と末尾のスペースを削除し、
連続スペースを 1 個に整えてくれる関数です。

例:前後スペースを無視して7桁かどうかチェック

=LEN(TRIM(A2))=7

スペースを入力しがちな項目(名前・ID・メールアドレスなど)は、
TRIM をかませてから LEN を使うのが安全です。


LEN を使ったID/コードの妥当性チェック例

LEN は「桁数制限のあるID」「コード」のチェックと相性抜群です。

例1:社員IDが 6 桁固定かどうか

A2 が 6 桁なら OK とする。

=IF(LEN(A2)=6,"OK","桁数が不正です")

例2:商品コードが 3 桁+ハイフン+4 桁(合計8文字)かどうか

厳密にはパターンチェックが必要ですが、
まずは「文字数が 8 文字であること」を LEN でチェックできます。

=LEN(A2)=8

ここに加えて、
「4文字目がハイフンかどうか」を LEFT/MID などでチェックする、
といった組み合わせで妥当性チェックを組み立てます。


数値を「文字列として」扱いたいときの注意

妥当性チェックでは、
「001234」を 6 桁のコードとみなしたい、といったケースが多いです。

その場合は、事前に

  • セルの表示形式を「文字列」にする
  • 先頭にアポストロフィ '001234 と入力する
  • TEXT 関数で文字列化する

などで、「文字列としての桁数」をカウントできる状態 にしておく必要があります。

例えば、数値 1234 を 6 桁ゼロ埋めの文字列にしてから桁数を見るなら:

=LEN(TEXT(A2,"000000"))

とすれば、常に 6 になります。


文字列の妥当性チェック(LEN)の“型”まとめ

桁数がちょうど n 桁かどうか

=LEN(A2)=n

桁数が n 以上かどうか

=LEN(A2)>=n

桁数が n〜m の範囲内か

=AND(LEN(A2)>=n, LEN(A2)<=m)

スペースを無視して桁数チェック

=LEN(TRIM(A2))=n

メッセージ付きで妥当性を表示

=IF(LEN(A2)=n,"OK","NG")

例題

問題1

A2 に郵便番号が入力されています。
この郵便番号が「7桁ちょうど」かどうかを TRUE / FALSE で判定したいです。
LEN を使った式を書いてください。

=LEN(A2)=7

問題2

A2 にパスワードが入力されています。
8文字以上なら「OK」、それ未満なら「短すぎます」と表示したいです。
LEN と IF を使った式を書いてください。

=IF(LEN(A2)>=8,"OK","短すぎます")

問題3

A2 に名前が入力されています。
名前の文字数が 2〜20 文字の範囲にある場合だけ TRUE を返したいです。
LEN と AND を使った式を書いてください。

=AND(LEN(A2)>=2, LEN(A2)<=20)

問題4

A2 に社員IDが入力されています。
前後のスペースは無視して、「実質 6 文字かどうか」を判定したいです。
TRIM と LEN を組み合わせた式を書いてください。

=LEN(TRIM(A2))=6

問題5

A2 に数値の 1234 が入っています。
これを「ゼロ埋め 6 桁の文字列」として扱い、その文字列の長さを LEN で数えたいです。
TEXT と LEN を組み合わせた式を書いてください。

=LEN(TEXT(A2,"000000"))

LEN はとても地味な関数ですが、
「文字数」という一番シンプルな指標を使って、
入力チェック・IDの妥当性確認・形式チェックの土台を作れる、とても重要な存在です。
まずは「桁数が正しいか?」を LEN で押さえるところから始めると、
文字列の妥当性チェック設計が一気にやりやすくなります。

Excel
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました