Excel関数 逆引き集 | 文字列の先頭一致判定 → LEFT

Excel
スポンサーリンク

概要

「この品番は ‘AB’ で始まっているか?」
「郵便番号の先頭3桁が ‘100’ のデータだけ抽出したい」
「文字列が ‘TEL:’ から始まる行だけ判定したい」

こういう “文字列の先頭が、ある文字列と一致しているかどうか” を判定するときの王道が
LEFT 関数+比較演算子(=) です。

やることはとてもシンプルで、

  1. LEFT で「先頭◯文字」を取り出す
  2. それが判定したい文字列と「= で一致しているか」を見る

という2ステップです。


LEFT 関数の基本

LEFT の書式と役割

=LEFT(文字列, 文字数)

文字列
先頭を調べたい元の文字列(セル参照で指定することが多い)。

文字数
「先頭から何文字取るか」。

例:A2 に「AB1234」が入っている場合

=LEFT(A2, 2)

結果:「AB」

先頭3文字なら

=LEFT(A2, 3)

結果:「AB1」

というように、“先頭だけを切り出す”係が LEFT です。
これを「比較」に使うと、先頭一致の判定ができます。


基本パターン:先頭が特定文字列と一致するか判定

先頭2文字が「AB」かどうかを調べる

A2 に品番が入っているとします。例:「AB1234」「AC5678」など。
この品番が 「ABで始まっているか?」 を判定したい場合。

判定用の式はこうなります。

=LEFT(A2, 2) = "AB"

意味は、

  • LEFT(A2,2) … 先頭2文字を取り出す
  • それが “AB” と等しいか?

です。

A2 が「AB1234」なら TRUE
A2 が「AC5678」なら FALSE

という論理値が返ってきます。

これをそのまま IF と組み合わせれば、

=IF(LEFT(A2, 2)="AB", "AB系", "対象外")

のように、「ABで始まるかどうか」でラベル分けができます。


応用1:郵便番号の“先頭3桁”でエリア判定

A2 に7桁の郵便番号「1000001」「1500002」などが入っているとします。
先頭3桁が「100」なら「千代田区エリア」それ以外は空白、のような判定をしたい場合。

=IF(LEFT(A2, 3)="100", "千代田区エリア", "")

LEFT(A2,3) で「100」「150」などを取り出し、
その結果と “100” を比較するだけです。

A2 が「1000001」 → 「千代田区エリア」
A2 が「1500002」 → 「」(空白)

というように、先頭一致でエリア判定ができます。


応用2:先頭のタグや接頭辞を判定する(TEL, FAX など)

A2 に、連絡先情報がテキストで入っているとします。

例:
「TEL:03-1234-5678」
「FAX:03-9876-5432」

これらから、「TEL の行だけ TRUE」「それ以外 FALSE」と判定したい場合。

=LEFT(A2, 4)="TEL:"

「TEL:」は4文字なので、LEFT(A2,4) と “TEL:” を比較します。

同じように、「FAX かどうか」を調べたいなら

=LEFT(A2, 4)="FAX:"

としてあげれば OK です。


応用3:OR と組み合わせて「複数の先頭パターン」を同時判定

例えば、品番が

  • 「AB」で始まるもの
  • 「CD」で始まるもの

のどちらかなら「対象」、それ以外は「対象外」としたい場合。

A2 の先頭2文字を調べて、

=IF(OR(LEFT(A2,2)="AB", LEFT(A2,2)="CD"), "対象", "対象外")

と書けば、

  • 先頭が AB → TRUE
  • 先頭が CD → TRUE
  • それ以外 → FALSE

となります。

「◯◯で始まる or ××で始まる」をまとめて扱いたいときに便利なパターンです。


応用4:数値っぽい文字列の先頭桁で判定する

A2 に「1A234」「2B345」「3C456」のようなコードがあるとします。
先頭1文字が「1」なら「タイプ1」、
「2」なら「タイプ2」、
その他は「その他」としたい場合。

=IF(LEFT(A2,1)="1","タイプ1",
   IF(LEFT(A2,1)="2","タイプ2","その他"))

LEFT(A2,1) で先頭1文字だけ取り出し、それに応じて分類する「入れ子IF」です。
先頭の1文字や数桁で「種別が決まる」コード体系では、かなりよく使うパターンです。


例題

問題1

A2 に品番が入っています。
先頭2文字が「AB」で始まる場合に TRUE、それ以外は FALSE を返す式を書いてください。
LEFT を使ってください。

=LEFT(A2,2)="AB"

問題2

A2 に7桁の郵便番号(例:「1000001」)が文字列として入っています。
先頭3桁が「100」のときに「千代田区」、それ以外は空白 “” を返す式を書いてください。

=IF(LEFT(A2,3)="100","千代田区","")

問題3

A2 に「TEL:03-1234-5678」や「FAX:03-9876-5432」が入っています。
先頭が「TEL:」のとき「電話」、それ以外のとき「その他」と表示する式を書いてください。

=IF(LEFT(A2,4)="TEL:","電話","その他")

問題4

A2 に品番が入っており、
先頭2文字が「AB」または「CD」の場合に「対象」、それ以外は「対象外」と表示したいです。
LEFT と OR を組み合わせた式を書いてください。

=IF(OR(LEFT(A2,2)="AB",LEFT(A2,2)="CD"),"対象","対象外")

問題5

A2 に「1A234」「2B345」「3C456」のようなコードが入っています。
先頭1文字が「1」なら「タイプ1」、「2」なら「タイプ2」、それ以外は「その他」と表示する式を書いてください。
LEFT と入れ子IFを使ってください。

=IF(LEFT(A2,1)="1","タイプ1",IF(LEFT(A2,1)="2","タイプ2","その他"))

文字列の先頭一致判定の本質は、この形です。

=LEFT(対象セル, 先頭で見たい文字数) = "判定したい文字列"

この“型”さえ押さえておけば、
品番・郵便番号・ID・タグ付きテキストなど、
「先頭の数文字で意味が決まる」あらゆるデータを、自在に振り分けられるようになります。

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