スプレッドシートで「この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列 | 数式 | 結果 |
|---|---|---|---|
| Excel | Excel | =EXACT(A1,B1) | TRUE |
| Excel | excel | =EXACT(A2,B2) | FALSE |
| Excel | Excel | =EXACT(A3,B3) | FALSE |
| 100 | 100 | =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 / FALSE | TRUE / FALSE |
実際に動作を比べてみましょう。
| A列 | B列 | =EXACT(A1,B1) | =A1=B1 |
|---|---|---|---|
| Excel | excel | FALSE | TRUE |
| ABC | abc | FALSE | TRUE |
| 100(数値) | 100(文字列) | TRUE | TRUE |
「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-001 | PRD-001 | 一致 |
| PRD-002 | prd-002 | 不一致 |
| PRD-003 | PRD-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/FALSE | TRUE/FALSE | 位置(数値) | 位置(数値) |
| ワイルドカード | 使えない | 使えない | 使えない | 使える |
| 部分一致 | 不可 | 不可 | 可 | 可 |
EXACT関数は「完全一致」の判定に特化した関数です。部分一致の検索にはFIND関数やSEARCH関数を使いましょう。
まとめ
この記事では、スプレッドシートのEXACT関数について解説しました。
| 項目 | 内容 |
|---|---|
| 機能 | 2つの文字列が完全一致かを判定 |
| 構文 | =EXACT(文字列1, 文字列2) |
| 大文字・小文字 | 区別する |
| 全角・半角 | 区別しない |
| =演算子との違い | 大文字小文字を区別するかどうか |
EXACT関数の最大の強みは、=演算子では見逃してしまう大文字小文字の違いを検出できることです。
- IF関数と組み合わせて、データの一致・不一致を判定する
- SUMPRODUCT関数と組み合わせて、完全一致の件数をカウントする
- TRIM関数でスペースを除去してから比較すると、より正確に判定できる
商品コードやIDの照合など、正確性が重要な場面で活用してみてください。思わぬ不一致トラブルを防げますよ。
