Excel 文字列比較の完全ガイド:完全一致・部分一致の効率的な方法と活用

2025年7月25日

English version.

Excelでデータ管理や分析を行う際、文字列の比較は頻繁に発生する作業です。例えば、顧客リストの名寄せや商品コードの照合、進捗状況の確認など、正確な文字列比較は業務効率を大きく左右します。

Excelには、文字列が完全に一致するか、あるいは一部が一致するか(部分一致・あいまい検索)を効率的に調べるための複数の機能が備わっています。

これらの機能は、主にIF関数や条件付き集計関数、XLOOKUP関数VLOOKUP関数などと組み合わせて使用することで、データの集計・抽出・照合作業を大幅に効率化します。

本記事では、Excelの文字列比較機能それぞれの特徴と、実務で役立つ具体的な使用場面を詳しく解説します。

本記事で解説するExcel文字列比較の基本と活用方法について、まずはこちらの動画で概要をご確認ください。より視覚的に理解を深めることができます。

目次

Excelで文字列を「完全一致」で比較する方法

=(イコール)比較演算子による完全一致判定

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

方法は単純に"(ダブルコーテーション)で囲んだ文字列同士を=で挿んだ数式を作ります。

=文字列1 = 文字列2

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

ExcelのIF関数で文字列を比較演算子「=」を用いて完全一致を判定する例。
比較演算子のIF関数での使用例

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

3行目のように検査対象を含んでいたとしても異なっていると判断されてFALSEとなります。

この比較演算子は手軽に使用できますが、大文字小文字を区別しないなど

比較が厳密でない部分があるため厳密な比較を行いたい場合はEXACT関数を使用します。

EXACT関数による厳密な完全一致比較

比較演算子とは下記の差があるのでその時々で都合のよいほうを利用します。

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

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

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

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

ExcelのEXACT関数と比較演算子「=」が、数値や大文字小文字の文字列比較において異なる結果を示す具体例。
EXACT関数の実行結果の例と=(イコール)による比較との違い

Excelで文字列を「部分一致」で比較する方法:ワイルドカードの活用

含むパターン(部分一致)や

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

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

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

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

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

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

条件付き集計関数、XLOOKUP、VLOOKUP関数でのワイルドカード活用例

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

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

これによりXLOOKUP関数VLOOKUP関数、条件付き集計関数であいまい検索を実現できます。

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

比較方法数式例
部分一致*文字列*
前方一致文字列*
後方一致 *文字列
ExcelのVLOOKUP関数でワイルドカード(*、?、~)を使用して前方一致、部分一致、後方一致、およびワイルドカード文字自体を検索する例。
ワイルドカードを使用してVLOOKUP関数で、あいまい検索を行う例

IF関数で部分一致を判定する方法(COUNTIF関数との組み合わせ)

IF関数にはワイルドカードが使えませんが

COUNTIF関数を間に挟むことで機能させることが可能です。

=IF(COUNTIF(検索対象,"*文字列*")>=1,"含む","含まない")

※>=1はなくても機能しますが、ある方が数式として自然な形式です。

ExcelのIF関数にCOUNTIF関数とワイルドカードを組み合わせて、文字列の部分一致を判定する数式の例。
COUNTIF関数を仲介してIF関数にワイルドカードを機能させる例

FILTER関数の場合

FILTER関数の場合、ワイルドカードが利用できないため文字列関数で対応する必要があります。

(詳細はFILTER関数の記事内

よくある質問(FAQ)と応用ヒント

Q1: 大文字と小文字を区別せずに文字列比較を行いたい場合はどうすればよいですか?

A1: 標準の比較演算子 = は大文字と小文字を区別しません。

例えば、="Apple"="apple" の結果は TRUE となります。もしEXACT関数で区別しない比較を行いたい場合は、あらかじめLOWER関数やUPPER関数を使って文字列を統一してから比較する方法があります。

例えば、次の数式のように使用します。

=EXACT(LOWER(文字列1), LOWER(文字列2))
Excelで大文字小文字を区別せずに文字列比較を行う方法の例。イコール演算子とLOWER関数を組み合わせたEXACT関数で、どちらもTRUEの結果を示している。

Q2: 半角と全角を区別せずに文字列比較を行いたい場合はどうすればよいですか?

A2: Excelの標準機能で半角と全角を区別せずに比較する直接的な関数はありません。しかし、ASC関数(全角のカタカナ、英字、数字を半角に変換)JIS関数(半角のカタカナ、英字、数字を全角に変換)などを利用して、比較対象の文字列の書式を統一してから比較する方法が考えられます。

例えば、次の数式のように使用します。

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

ただし、極めて特殊な文字コードの揺れや、一部の環境依存文字などは対応できませんが、稀なケースです。

Excelで半角・全角を区別しない文字列比較の例。JIS関数またはASC関数を用いて文字幅を統一することで、EXACT関数による比較結果が一致(TRUE)となることを示している表。

Q3: 特定の記号(例: ハイフン、スペースなど)を無視して文字列比較を行う方法はありますか?

A3: SUBSTITUTE関数CLEAN関数TRIM関数などを組み合わせて、比較前に不要な記号やスペースを削除(置換)することで対応可能です。例えば、ハイフンを削除して比較したい場合は、次の数式のように記述します。

=EXACT(SUBSTITUTE(文字列1,"-",""), SUBSTITUTE(文字列2,"-",""))

複数の記号を無視する場合は、SUBSTITUTE関数を複数回ネストして使用します。

Excelで特定の記号やスペース、改行を無視して文字列比較を行う方法の例。SUBSTITUTE、TRIM、CLEAN各関数で文字列を整形した後、EXACT関数で一致判定を行いTRUEの結果を得ている表。

Q4: 文字列比較の結果を使って、関連するデータを自動で抽出・集計したいです。どのような関数が適していますか?

A4:

  • データの抽出: FILTER関数XLOOKUP関数が便利です。特にFILTER関数は、指定した条件(文字列比較の結果など)に合致するデータを範囲から抽出できます。XLOOKUP関数は、一致したデータに対応する別の列の情報を効率的に取得できます。
  • データの集計: SUMIF関数COUNTIF関数AVERAGEIF関数などの条件付き集計関数や、より柔軟なSUMIFSCOUNTIFSAVERAGEIFSMINIFSMAXIFS関数を使用します。これらは文字列比較の結果に基づいて、特定の条件を満たすデータの合計、個数、平均などを算出するのに役立ちます。

Q5: 複数の条件(AND/OR)で文字列比較を行いたい場合、どのように数式を組めばよいですか?

A5:

·  AND条件(〇〇かつ△△): 複数の条件がすべて真である場合に結果を出すには、AND関数と組み合わせて使用します。

例:

=IF(AND(B2="Apple", C2="Red"), "一致", "不一致")

この例では、B2が"Apple" かつ C2が"Red"の場合に"一致"と表示されます。

·  OR条件(〇〇もしくは△△): 複数の条件のいずれか一つでも真であれば結果を出すには、OR関数と組み合わせて使用します。

例:

=IF(OR(B2="Apple", B2="Orange"), "フルーツ", "その他")

この例では、B2が"Apple" もしくは B2が"Orange"の場合に"フルーツ"と表示されます。

より多くの条件や集計を伴う場合は、SUMIFSCOUNTIFSなどの複数条件に対応する関数も活用できます。また、複数の条件分岐の結果を返す場合には、IFS関数がIF関数を複数ネストするよりも簡潔な記述を可能にします。

関連記事

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

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

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

VLOOKUP関数との組み合わせ

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

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

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

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

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

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

集計関数との組み合わせ

SUMIFS

COUNTIFS

AVERAGEIFS

COUNTIFS

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

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

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

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