ExcelのEXACT関数の使い方|大文字小文字を区別して文字列を比較

スポンサーリンク

「同じように見えるのに、VLOOKUPがなぜか一致しない…」。こんな経験はありませんか?

大文字と小文字の違いや、末尾に紛れ込んだスペースが原因で、目視ではまったく気づけないケースが意外と多いんです。何度見直しても原因がわからないと、かなりストレスですよね。

ExcelのEXACT関数を使えば、2つの文字列が完全に一致しているかどうかを一発で判定できます。この記事では、基本の書き方から=演算子との違い、UPPER・TRIM・ASCとの組み合わせまで、実務で使えるパターンをまとめて紹介しますよ。

EXACT関数とは?

EXACT(イグザクト)関数は、2つの文字列を比較して完全一致ならTRUE、1文字でも違えばFALSEを返す関数です。英語の「exact(正確な、厳密な)」が名前の由来になっています。

たとえば「Excel」と「excel」をEXACT関数で比較するとFALSEになります。先頭の「E」と「e」を区別するためです。

ポイントは大文字・小文字を区別することです。通常の=演算子(=A1=B1)では「Excel」と「excel」はTRUEになりますが、EXACT関数はFALSEを返します。この違いが、EXACT関数を使う最大の理由ですよ。

NOTE

EXACT関数はExcelの全バージョンで使えます。Googleスプレッドシートでも同じ書き方で利用可能です。

EXACT関数の書き方(構文と引数)

基本構文

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

引数の説明

引数必須/省略可説明
文字列1必須比較する1つ目の文字列またはセル参照
文字列2必須比較する2つ目の文字列またはセル参照

引数はどちらも必須です。ダブルクォーテーションで囲んで文字列を直接指定するか、セル参照で指定します。

EXACT関数が区別するもの・しないもの

項目区別する?
大文字・小文字する「Excel」と「excel」→ FALSE
全角・半角する「ABC」と「ABC」→ FALSE
半角スペースの有無する「Excel 」と「Excel」→ FALSE
全角スペースの有無する「Excel 」と「Excel」→ FALSE
書式の違いしない太字の「Excel」と通常の「Excel」→ TRUE
数値と数値の文字列しない100 と “100” → TRUE

TIP

空白も1文字としてカウントされます。見た目では同じに見えても、末尾にスペースが入っていると不一致になるので注意してくださいね。

EXACT関数の基本的な使い方

セル参照で比較する

A1に「Excel」、B1に「excel」と入っている場合です。

=EXACT(A1, B1)

結果は FALSE です。先頭の「E」と「e」が異なるためです。

文字列を直接指定して比較する

ダブルクォーテーションで囲めば、セルを使わずに直接比較もできます。

=EXACT("東京都", "東京都")

結果は TRUE です。日本語の全角文字も正確に比較できますよ。

=演算子との違いを確認する

A1に「Hello」、B1に「hello」と入っている場合で比べてみましょう。

数式結果理由
=EXACT(A1, B1)FALSE大文字・小文字を区別する
=A1=B1TRUE大文字・小文字を区別しない

大文字小文字を厳密に比較したいときはEXACT関数を使いましょう。逆に、大文字小文字を気にしない比較なら=演算子で十分です。

EXACT関数の実務活用パターン

パターン1:IF関数と組み合わせてダブルチェック

入力者AとBが同じデータを入力したとき、内容が一致しているか確認するケースです。

=EXACT(B2, C2)

B列とC列を比較して、TRUEなら一致、FALSEなら入力ミスあり、と判断できます。IF関数と組み合わせると、結果をわかりやすく表示できますよ。

=IF(EXACT(B2, C2), "一致", "不一致")

このように書くと、TRUE/FALSEではなく「一致」「不一致」の文字で表示されます。大量のデータを目視でチェックするときに便利です。

パターン2:大文字小文字を無視して比較する(UPPER関数との組み合わせ)

EXACT関数は大文字小文字を区別しますが、逆に「区別したくない」ケースもありますよね。そんなときはUPPER関数で揃えてから比較します。

=EXACT(UPPER(A2), UPPER(B2))

両方を大文字に変換してから比較するので、「Excel」と「excel」でもTRUEが返ります。LOWER関数で小文字に揃えても同じ結果です。

パターン3:スペースを除去してから比較する(TRIM関数との組み合わせ)

データの末尾に余分なスペースが入っていると、見た目は同じでもFALSEになります。TRIM関数で余分なスペースを除去してから比較しましょう。

=EXACT(TRIM(A2), TRIM(B2))

TRIMは前後のスペースと連続スペースを削除してくれます。CSV取り込みデータなど、末尾スペースが混入しやすいデータに効果的ですよ。

パターン4:全角半角を統一してから比較する(ASC関数との組み合わせ)

「ABC」(全角)と「ABC」(半角)もEXACT関数ではFALSEになります。ASC関数で半角に統一してから比較すると、全角半角の違いを無視できます。

=EXACT(ASC(A2), ASC(B2))

逆に全角に統一したい場合はJIS関数を使ってください。

=EXACT(JIS(A2), JIS(B2))

パターン5:データクレンジング後の完全一致チェック

実務では、大文字小文字・全角半角・余分なスペースをまとめてクレンジングしてから比較したいケースが多いです。

=EXACT(UPPER(ASC(TRIM(A2))), UPPER(ASC(TRIM(B2))))

ちょっと長く見えますが、やっていることはシンプルです。3つの処理を順番に入れ子にしています。

  1. TRIM: 余分なスペースを除去
  2. ASC: 全角を半角に統一
  3. UPPER: アルファベットを大文字に統一

全部揃えてからEXACTで比較するので、表記ゆれを無視した「中身の一致チェック」ができますよ。

パターン6:SUMPRODUCT+EXACTで大文字小文字を区別してカウントする

COUNTIF関数は大文字小文字を区別しません。「Apple」と「apple」を別々にカウントしたいときは、SUMPRODUCT関数とEXACT関数を組み合わせます。

=SUMPRODUCT((EXACT(A2:A100, "Apple"))*1)

A2:A100の中から、大文字小文字まで完全に「Apple」と一致するセルの数を返します。*1はTRUE/FALSEを1/0に変換するためのテクニックです。

パターン7:条件付き書式で不一致セルを色付けする

EXACT関数の結果を条件付き書式に使うと、不一致のセルを自動で色付けできます。

  1. B列を選択
  2. 「ホーム」→「条件付き書式」→「新しいルール」
  3. 「数式を使用して、書式設定するセルを決定」を選択
  4. 数式に =NOT(EXACT(B2, C2)) と入力
  5. 書式を赤色の塗りつぶしに設定

これで、B列とC列が不一致のセルだけが赤く表示されます。大量データのダブルチェック作業に便利ですよ。

よくあるエラーと対処法

EXACT関数は引数が2つだけのシンプルな関数です。エラーが発生するケースは限られていますが、「期待した結果にならない」パターンは押さえておきましょう。

症状原因対処法
同じに見えるのにFALSE末尾にスペースが入っているTRIM関数で余分なスペースを除去してから比較する
同じに見えるのにFALSE全角と半角が混在しているASC関数で半角に統一してから比較する
同じに見えるのにFALSE目に見えない制御文字が含まれているCLEAN関数で制御文字を除去してから比較する
大文字小文字が違うのにTRUE=演算子を使っている=A1=B1ではなく=EXACT(A1, B1)を使う
#NAME?関数名のスペルミス「EXACT」のスペルを確認する
数値なのにTRUEEXACT関数は数値を文字列として比較数値を厳密に比較したい場合はDELTA関数を使う

TIP

「同じに見えるのにFALSE」の原因を調べたいときは、LEN関数で文字数を比較してみましょう。文字数が違えば、目に見えないスペースや制御文字が含まれている証拠です。

=演算子との違い・使い分け

EXACT関数と=演算子は、どちらも2つの値を比較できます。違いを整理しておきましょう。

比較項目EXACT関数=演算子
大文字・小文字の区別するしない
全角・半角の区別するする
数値の比較文字列として比較数値として比較
戻り値TRUE / FALSETRUE / FALSE

使い分けのポイント:

  • 大文字小文字を区別して比較したい → EXACT関数
  • 大文字小文字を気にしない比較で十分 → =演算子
  • 数値を正確に比較したいDELTA関数

テキスト比較で使う関数の全体像

EXACT関数と一緒に使うことが多い、文字列を整えるための関数をまとめました。Excelの文字列関数まとめも合わせて参考にしてみてください。

関数役割記事リンク
EXACT2つの文字列を正確に比較この記事
UPPERアルファベットを大文字にUPPER関数の使い方
LOWERアルファベットを小文字にLOWER関数の使い方
PROPER単語の先頭を大文字にPROPER関数の使い方
ASC全角を半角にASC関数の使い方
JIS半角を全角にJIS関数の使い方
SUBSTITUTE指定文字を置換SUBSTITUTE関数の使い方
TRIM余分なスペースを削除TRIM関数の使い方
CLEAN制御文字を削除CLEAN関数の使い方

まとめ

EXACT関数は=EXACT(文字列1, 文字列2)と書くだけで、2つの文字列が完全一致かどうかを判定できる関数です。

  • 引数は文字列1文字列2の2つだけ
  • 大文字・小文字を区別するのが=演算子との最大の違い
  • UPPER・LOWER関数で揃えてから比較すれば、大文字小文字を無視した比較もできる
  • TRIM・ASC関数と組み合わせれば、スペースや全角半角の違いも吸収できる
  • SUMPRODUCT+EXACTで大文字小文字を区別したカウントが可能
  • 数値の比較にはDELTA関数を使い分けましょう

「同じに見えるのにFALSEになる」ときは、まずLEN関数で文字数を確認してみてください。原因が一発でわかることが多いですよ。

関連記事

タイトルとURLをコピーしました