概要
「この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 で押さえるところから始めると、
文字列の妥当性チェック設計が一気にやりやすくなります。
