Excel 文字列を比較する方法(完全一致・部分一致)

2019年12月6日

Excelには文字列が一致しているかを

返す機能が複数あります。

その機能には完全一致を調べるものと

部分一致を調べる、あいまい検索があります。

これらは主にIF関数や条件付き集計関数、

VLOOKUP関数に用いるものです。

この記事では文字列比較機能の

それぞれの特徴と適切な場面を紹介します。

目次

完全一致

比較演算子

文字列が全て一致している場合にTRUEします。

方法は単純に"(ダブルコーテーション)で囲んだ

文字列と比較する数式を作ります。

IF関数の場合は比較演算子を使います。

比較演算子による文字列の完全一致の例

一字一句違いのない場合のみTRUEとなります。

3行目のように検査対象を含んでいたとしても

異なっていると判断されてFALSEとなります。

EXACT関数

厳密な比較にはEXACTを使用します。

比較演算子とは下記の差があるので

その時々で都合のよいほうを利用します。

「半角文字の数字」と「数値」の比較・=ではデータ型が違うと別と判定
・EXACT関数では数値が一緒であれば同じと判定
アルファベットの大文字と小文字・=では大文字と小文字を区別しない
・EXACT関数では大文字と小文字を区別する

部分一致の例

先述の例の含むパターンや

前方一致(先頭が一致)、

後方一致(末尾が一致)の場合、

ワイルドカードで数式を作ります。

ワイルドカード

意味のある特殊な文字を使う方式です。

主に条件付き集計関数、VLOOKUP関数に使用します。

IF関数 にはそのままでは使えません。

ワイルドカードには下記のものがあります。

文字読み方用途
*アスタリスク同じ位置の任意の数の文字列
?クエスチョン同じ位置の任意の1文字
~チルダアスタリスクとクエスチョンを通常の文字として扱う

条件付き集計関数やVLOOKUPでの使用例

?は任意の文字数が何文字かを特定したい場合に使用します。

逆に任意の文字数を特定したくない場合は*を使用します。

これによりVLOOKUP関数で特定の文字列を含む

検索ケースを実現可能になります。

ワイルドカードを使用してVLOOKUP関数で、あいまい検索を行う例

IF関数での使用例

IF関数ではワイルドカードを使えないため

ワイルドカードの使えるCOUNTIF関数を

間に挟むことで間接的に機能させます。

文字列操作関数を使っても可能ですが

数式がかなり複雑になるため、

この方法をお勧めします。

COUNTIF関数を仲介してIF関数にワイルドカードを機能させる例

関連記事

文字列比較の具体的な活用例

2つの表を比較し違う箇所を赤で強調する方法

複数列(3セル以上)の値が同じかを比較する方法

VLOOKUP関数との組み合わせ

VLOOKUP関数で特定文字列を含む(前方一致、部分一致、後方一致)検索を行う方法

VLOOKUP関数で「あれば〇」「なければ×」を表示する方法

VLOOKUP関数で大文字小文字を区別する方法

文字列操作関数との組み合わせ

FIND関数でワイルドカードを使いたい場合の対処方法

指定の文字が何文字目にあるかを調べる (SEARCH関数)

集計関数との組み合わせ

SUMIFS関数で特定の文字列を含む条件で合計する方法

COUNTIFS関数で特定の文字列を含む件数を取得する方法

AVERAGEIFS関数で特定の文字列を含む条件で平均する方法

COUNTIFS関数でワイルドカード(*?)を文字列として扱う方法

マクロ・VBAを利用した高度な比文字列比較や応用例

マクロ・VBA 2つの文字列を比較し、違う個所の文字色を赤に変更する方法

マクロ・VBA 重複する値をピックアップする方法(ワイルドカードと不等号対応版)

IF系関数の使い方・活用方法の記事一覧