スプレッドシートのEXACT関数の使い方|大文字小文字を区別して文字列を比較

スポンサーリンク

スプレッドシートで「この2つのデータ、本当に同じ内容かな?」と思ったことはありませんか?

大文字と小文字が違っていたり、余計なスペースが入っていたり。見た目は同じでも、実は違うデータだった……。こんな経験ありませんか?

そんなときに使うのがEXACT関数です。大文字・小文字まで区別して、2つの文字列が完全に同じかどうかを判定してくれます。

この記事では、EXACT関数の基本から実務の活用例まで紹介します。=演算子との違いもしっかり解説しますよ。

EXACT関数とは?スプレッドシートで文字列を完全一致で比較する関数

EXACT関数(読み方:イグザクト関数)は、2つの文字列が完全に一致しているかを判定する関数です。

名前は英語の「exact(正確な・厳密な)」から来ています。「厳密に」比較するイメージですね。Excel・スプレッドシートの両方で使えます。

EXACT関数の構文と引数

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

カッコの中に「比較したい2つの文字列やセル参照」を入れるだけです。

引数必須/任意説明
文字列1必須比較する1つ目の文字列やセル参照
文字列2必須比較する2つ目の文字列やセル参照

結果はTRUE(一致)FALSE(不一致)で返ります。とてもシンプルな関数です。

EXACT関数の基本的な使い方

実際にEXACT関数を使ってみましょう。A列とB列にそれぞれデータを入力して、一致しているか確認します。

A列B列数式結果
ExcelExcel=EXACT(A1,B1)TRUE
Excelexcel=EXACT(A2,B2)FALSE
ExcelExcel=EXACT(A3,B3)FALSE
100100=EXACT(A4,B4)TRUE
東京都東京都=EXACT(A5,B5)TRUE

いくつかポイントがあります。

  • 大文字と小文字を区別します。「Excel」と「excel」はFALSEです
  • スペースの有無も区別します。B3の末尾にスペースが入っているとFALSEになります
  • 数値の比較もできます。ただし、数値として比較するのではなく文字列に変換してから比較します
  • 全角・半角は区別しません。「A」(半角)と「A」(全角)はTRUEになります

NOTE

EXACT関数は全角・半角を区別しません。全角・半角まで厳密にチェックしたい場合は、ASC関数JIS関数であらかじめ統一してから比較する方法があります。

EXACT関数と=演算子の違い|大文字小文字の扱いが決め手

「文字列の比較なら =A1=B1 でもできるのでは?」と思った方もいるでしょう。

実は、EXACT関数と=演算子(イコール)には大きな違いがあります。

比較内容EXACT関数=演算子
大文字・小文字区別する区別しない
全角・半角区別しない区別しない
スペースの有無区別する区別する
数値と文字列文字列として比較値として比較
戻り値TRUE / FALSETRUE / FALSE

実際に動作を比べてみましょう。

A列B列=EXACT(A1,B1)=A1=B1
ExcelexcelFALSETRUE
ABCabcFALSETRUE
100(数値)100(文字列)TRUETRUE

「Excel」と「excel」を=演算子で比較するとTRUEになりますが、EXACT関数ならFALSEを返します。

つまり、大文字・小文字を区別して比較したいときはEXACT関数を使うのが正解です。

どちらを使うべき?判断基準

  • 商品コード・ID・パスワードなど正確性が重要 → EXACT関数
  • 名前や住所など、大文字小文字は気にしない → =演算子でOK

迷ったらEXACT関数を使っておくのが安全です。=演算子では大文字小文字の違いを見逃す可能性があります。

実務で使えるEXACT関数の活用例3選

EXACT関数は単体でも便利ですが、他の関数との組み合わせで真価を発揮します。よく使う3つのパターンを紹介します。

活用例1:IF関数と組み合わせてデータの一致判定を行う

2つのリストを突き合わせて、一致・不一致のラベルを付ける方法です。

たとえば、A列に「マスタデータの商品コード」、B列に「入力された商品コード」が入っている場合を考えます。

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

この数式は、A2とB2が完全一致なら「一致」、そうでなければ「不一致」と表示します。

マスタ(A列)入力値(B列)判定結果
PRD-001PRD-001一致
PRD-002prd-002不一致
PRD-003PRD-003一致

=演算子を使うと2行目も「一致」になります。正確性が求められるデータでは、EXACT関数を使いましょう。

活用例2:COUNTIF関数の代わりに完全一致で件数を数える

COUNTIF関数は大文字小文字を区別しません。完全一致でカウントするならEXACT+SUMPRODUCTの組み合わせです。

=SUMPRODUCT((EXACT(A2:A10,D2))*1)

この数式は、A2:A10の中でD2と完全一致するセルの数を返します。

A列に「abc」「ABC」「Abc」「abc」が入っていてD2が「abc」の場合、結果は2です。COUNTIFだと4を返しますが、EXACTなら正確です。

TIP

*1 は、TRUE/FALSEを1/0に変換するための記述です。SUMPRODUCT関数は数値の合計を返すので、この変換が必要になります。

活用例3:入力チェックに使う(マスタとの照合)

ユーザーが入力したデータが、マスタデータと正確に一致しているかを確認する場面です。

B列に入力された部門コードが、マスタ(D列)のどれかと完全一致するかを判定します。

=IF(SUMPRODUCT((EXACT(B2,$D$2:$D$10))*1)>0, "OK", "要確認")

この数式は、B2がD2:D10のいずれかと完全一致すれば「OK」、どれとも一致しなければ「要確認」と表示します。

マスタとの照合を=演算子で行うと、大文字小文字の違いを見逃します。EXACT関数なら入力ミスを確実に検出できますよ。

EXACT関数のよくあるエラーと対処法

EXACT関数はシンプルなので、エラーが出ることは少ないです。ただし、意図しない結果になるケースがあります。

症状原因対処法
同じに見えるのにFALSE末尾にスペースが入っているTRIM関数でスペースを除去してから比較
同じに見えるのにFALSE見えない特殊文字が含まれているCLEAN関数で制御文字を除去
同じに見えるのにFALSE全角スペースと半角スペースが混在SUBSTITUTE関数で全角スペースを半角に統一
数値のTRUE/FALSEが不安定セルの書式(数値/文字列)が異なるTEXT関数で表示形式を揃える
引数が空白セルでTRUE空白セル同士の比較IF関数で空白チェックを追加する

「見た目は同じなのにFALSEになる」ケースの多くは、目に見えないスペースや特殊文字が原因です。

TRIM関数でスペースを除去してから比較するのが、最も手軽な対処法です。

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

これで前後の余分なスペースを除去してから比較できます。

TIP

LEN関数で文字数を調べると、見えないスペースの存在を確認できます。=LEN(A2) の結果が想定より多ければ、余分な文字が含まれています。

EXACT関数と似た関数との違い・使い分け

文字列を比較する方法はEXACT関数以外にもあります。それぞれの違いを整理しておきましょう。

項目EXACT関数=演算子FIND関数SEARCH関数
用途完全一致の判定一致の判定文字列の検索文字列の検索
大文字小文字区別する区別しない区別する区別しない
戻り値TRUE/FALSETRUE/FALSE位置(数値)位置(数値)
ワイルドカード使えない使えない使えない使える
部分一致不可不可
  • 2つの文字列が完全に同じかを知りたい → EXACT関数
  • 大文字小文字を気にせず一致を判定したい → =演算子
  • 文字列の中に特定の文字が含まれるかを調べたい → FIND関数 / SEARCH関数

EXACT関数は「完全一致」の判定に特化した関数です。部分一致の検索にはFIND関数やSEARCH関数を使いましょう。

まとめ

この記事では、スプレッドシートのEXACT関数について解説しました。

項目内容
機能2つの文字列が完全一致かを判定
構文=EXACT(文字列1, 文字列2)
大文字・小文字区別する
全角・半角区別しない
=演算子との違い大文字小文字を区別するかどうか

EXACT関数の最大の強みは、=演算子では見逃してしまう大文字小文字の違いを検出できることです。

  • IF関数と組み合わせて、データの一致・不一致を判定する
  • SUMPRODUCT関数と組み合わせて、完全一致の件数をカウントする
  • TRIM関数でスペースを除去してから比較すると、より正確に判定できる

商品コードやIDの照合など、正確性が重要な場面で活用してみてください。思わぬ不一致トラブルを防げますよ。

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