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

2020年1月28日

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

調べる機能が複数あります。

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

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

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

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

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

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

目次

完全一致

比較演算子

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

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

文字列同士を=で挿んだ数式を作ります。

文字列1 = 文字列2

IF関数の場合の使用例です。

比較演算子のIF関数での仕様例

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

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

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

この比較演算子は手軽に使用できますが、

大文字小文字を区別しないなど

比較が厳密でない部分があるため

厳密な比較を行いたい場合は

EXACT関数を使用します。

EXACT関数

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

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

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

EXACT関数はこのように使用します。

EXACT(文字列1,文字列2)

下記がEXACT関数の結果例と比較演算子の結果との対比です。

EXACT関数の実行結果の例と=(イコール)による比較との違い

部分一致の例

先述の例の含むパターン(部分一致)や

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

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

ワイルドカードという特殊な文字で数式を作ります。

ワイルドカード

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

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

IF関数にはそのままでは使えません(後述)。

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

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

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

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

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

これによりVLOOKUP関数や条件付き集計関数で

あいまい検索を実現できます。

(XLOOKUP関数では一致モードを変更する必要があります)

部分一致の数式例*文字列*
前方一致の数式例 文字列*
後方一致の数式例 *文字列
ワイルドカードを使用してVLOOKUP関数で、あいまい検索を行う例

IF関数での使用例

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

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

間に挟むことで間接的に機能させることが可能です。

IF(COUNTIF(検索対象,"*文字列*","含む","含まない")
COUNTIF関数を仲介してIF関数にワイルドカードを機能させる例

動画版

関連記事

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

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

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

VLOOKUP関数との組み合わせ

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

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

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

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

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

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

集計関数との組み合わせ

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

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

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

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

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

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

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

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