Excel関数 逆引き集 | 文字列比較(大小区別)→ EXACT

Excel
スポンサーリンク

概要

文字列が「完全に同じかどうか」を判定したいとき、
特に「大文字・小文字も区別して比較したい」ときに使うのが EXACT 関数です。

  • ABCABC → 同じ(TRUE)
  • ABCabc → 違う(FALSE)
  • テストテスト → 同じ(TRUE)
  • テストテスト(末尾スペースあり)→ 違う(FALSE)

のように、1文字でも違えば FALSE を返す、かなり“厳しい”比較をしてくれる関数です。

ここでは、プログラミング初心者向けに、
「EXACT で何ができるか」「どんな場面で使うか」を、コード例と問題を交えながら解説します。


EXACT関数の基本

基本構文と考え方

=EXACT(文字列1, 文字列2)
  • 文字列1 と 文字列2 が 完全に一致TRUE
  • 少しでも違う → FALSE

ポイントは次の3つです。

  1. 大文字・小文字を区別する(A と a は違う)
  2. 空白も含めて1文字でも違えば FALSE
  3. 結果は TRUE / FALSE(論理値)

例:A2 と B2 の文字列を比較する

=EXACT(A2,B2)

A2: Excel、B2: Excel → TRUE
A2: Excel、B2: EXCEL → FALSE


大文字・小文字を区別した比較

ログインIDやコードの厳密チェック

たとえば、A2 に入力された値が Abc123 であるかどうかを、
大文字小文字を区別してチェックしたい場合。

=EXACT(A2,"Abc123")
  • A2 = Abc123 → TRUE
  • A2 = abc123 → FALSE
  • A2 = Abc124 → FALSE

普通に =A2="Abc123" と書くと、
言語設定によっては大文字小文字を区別しない比較になる場合もあるため、
「絶対に区別したい」場面は EXACT を使うのが安全です。


空白や見た目の違いを厳密にチェック

見た目は同じでも「余計なスペース」がある問題

A2: 山田太郎
B2: 山田太郎(末尾に空白)

見た目はほぼ同じですが、EXACT で比較すると違いがわかります。

=EXACT(A2,B2)

結果は FALSE になります。

逆に言うと、
「EXACT で FALSE → どこかに余計な空白 or 文字の違いがある」
というチェックに使えます。

空白も含めて“完全一致”させたいマスタデータのチェックなどに有効です。


IF と組み合わせて「一致/不一致メッセージ」を出す

TRUE/FALSE のままだと分かりづらい場合

EXACT の結果は TRUE / FALSE なので、
そのままだと少し味気ないことがあります。

たとえば、A2 と B2 が同じなら「一致」、違うなら「不一致」と表示したい場合。

=IF(EXACT(A2,B2),"一致","不一致")
  • EXACT(A2,B2) が TRUE → 「一致」
  • FALSE → 「不一致」

人間が見てすぐにわかる表現に変換する、という使い方です。


配列(複数セル)に対してのチェックのイメージ

厳密には関数1つではなく応用ですが、イメージとして。

たとえば、「入力値一覧」と「正解一覧」が並んでいるとして、
行ごとに EXCEL が正しく入力されているかチェックする、というようなことができます。

A列:ユーザー入力
B列:正解

C列で

=IF(EXACT(A2,B2),"OK","NG")

として下方向にコピーしていけば、

  • 大文字小文字も含めて完全一致 → OK
  • 少しでも違う → NG

という判定表が作れます。


EXACTを使うときの注意点

日本語では「大文字・小文字」の概念が薄い

日本語(ひらがな・カタカナ・漢字)だけを扱う場合、
「大文字・小文字の違い」はほとんど関係ありません。

ただし、

  • 全角スペース/半角スペース
  • 全角英数字/半角英数字
  • 見た目が似ている別文字(例:全角ハイフンと半角ハイフン)

などは、当然ながら 別文字として扱われる ので、
EXACT は「本当に一字一句同じか?」を厳しくチェックする関数だと覚えておくと良いです。


例題

問題1

A2 と B2 の文字列が 大文字・小文字も含めて完全一致 しているかどうかを判定し、
TRUE / FALSE を返したいです。
EXACT 関数を使った式を書いてください。

=EXACT(A2,B2)

問題2

A2 に入力された値が Abc123 と完全に一致しているかどうかを判定したいです。
一致していれば TRUE、違っていれば FALSE になるように、EXACT を使った式を書いてください。

=EXACT(A2,"Abc123")

問題3

A2 と B2 が完全一致している場合は「一致」、
そうでない場合は「不一致」と表示したいです。
EXACT と IF を組み合わせた式を書いてください。

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

問題4

A2 と B2 の見た目は同じですが、
どちらかに余計なスペースが入っているかもしれません。

2つのセルが 完全一致しているかどうか を調べる式を書いてください。
(結果は TRUE/FALSE で良いものとします)

=EXACT(A2,B2)

問題5

A2 にユーザーの入力、B2 に正しいパスワード(AbCd01)が入っています。
A2 が B2 と 大文字・小文字も含めて完全に一致しているときだけ「ログインOK」、それ以外は「NG」と表示したいです。
EXACT と IF を使った式を書いてください。

=IF(EXACT(A2,B2),"ログインOK","NG")

EXACT は、

  • 「なんとなく同じ」ではなく
  • 「1文字も違ってはいけない」

という場面で真価を発揮します。
ID・パスワード・コード・マスタキーなど、厳密な比較が必要な文字列を扱うときに、ぜひ積極的に使ってみてください。

Excel
スポンサーリンク
シェアする
@lifehackerをフォローする
スポンサーリンク
タイトルとURLをコピーしました