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

2025年12月10日

English version.

目次

はじめに

Excelでデータ管理や分析を行う際、「文字列の比較」は避けて通れない頻出作業です。顧客リストの名寄せや商品コードの照合、進捗状況の確認など、正確な比較ができるかどうかは、業務の効率と質を大きく左右します。

しかし、Excelには文字列が「完全に一致するか」だけでなく、「一部が含まれているか(部分一致)」を判定する機能もあり、それぞれ適した方法が異なります。単純な「=(イコール)」での比較だけでなく、ワイルドカードや関数を適切に使い分けることで、複雑な照合作業も自動化が可能になります。

本記事では、Excelの文字列比較機能の特徴と、実務ですぐに使える具体的な活用シーンを解説します。目視チェックを減らし、データの集計・抽出をより確実に行うためのテクニックとしてお役立てください。

動画版

本記事の内容を、動画で確認したい方はこちら。

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

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

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

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

=文字列1 = 文字列2

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

比較演算子のIF関数での使用例

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

FILTER関数の場合

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

(詳細はFILTER関数の記事内

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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における文字列比較のテクニックについて、「完全一致」と「部分一致」の両面から解説しました。

  • 完全一致: 通常は比較演算子 = を使用し、大文字・小文字まで厳密に区別したい場合は EXACT関数 を使用します。
  • 部分一致: ワイルドカード(*?)を活用することで、あいまいなデータ検索が可能になります。
  • 条件分岐: IF関数で部分一致を行いたい場合は、ワイルドカードが直接使えないため COUNTIF関数 を組み合わせる工夫が必要です。

また、比較がうまくいかない場合は、半角・全角の違いや不要なスペースが原因であることが多いため、JIS関数TRIM関数 などでデータを整形(クレンジング)してから比較することをおすすめします。

これらの手法を組み合わせることで、手作業での照合ミスを防ぎ、日常の集計業務をよりスムーズに進めることができるようになります。まずは身近なリストのチェック作業から、これらの関数を取り入れてみてください。

関連記事

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

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系関数の使い方・活用方法の記事一覧