EXACT関数とは?複数の文字・セルが同じかを判定する方法まとめ
この記事でわかること
この記事では、ExcelのEXACT関数で文字列が完全一致しているかを判定する基本と、複数セルや範囲の比較、そして「=」との使い分けまでを一通りまとめます。
EXACTは大文字と小文字を区別して判定するため、パスワード風の表記やIDの大小文字が重要なデータ確認に向いています。
一方で、見た目は同じでも空白や改行など「見えない差」でFALSEになることがあるため、原因の切り分け手順も合わせて押さえます。
EXACT関数の基本
EXACT関数は、2つの文字列が「完全に同じか」をTRUEまたはFALSEで返す関数です。
ここでいう「完全に同じ」とは、見た目が似ているかどうかではなく、文字列として1文字ずつ一致しているかどうかを指します。そのため、人の目では区別しにくい差も含めて、機械的に厳密な判定を行えるのが特徴です。
ポイントは、大文字と小文字を区別して比較することと、文字列としての一致を見に行くことです。この2点を理解しておくと、なぜTRUEになるのか、あるいはFALSEになるのかを論理的に説明できるようになります。
EXACT関数の役割(大文字/小文字を区別して一致判定)
EXACTは、Aとaのような大小文字の違いを別物として扱うため、同じに見えてもFALSEになることがあります。
たとえばA1が「Excel」でB1が「excel」の場合、=EXACT(A1,B1)はFALSEになります。文字の並び自体は同じでも、先頭の大文字・小文字が違うため、EXACTでは一致とみなされません。
この性質により、ログインIDや商品コードなど、大小文字が意味を持つデータのチェックに向いています。一方で、単なる文章や名称の比較では、厳密すぎて使いにくい場面がある点も理解しておく必要があります。
一方で、大小文字の違いを気にしない比較をしたいなら、EXACTではなく別の手段を選ぶほうが自然です。目的に応じて「厳密一致が必要かどうか」を先に判断することが、関数選びのコツになります。
基本構文と戻り値(TRUE/FALSE)+最小例
EXACTの書き方は=EXACT(text1,text2)で、text1とtext2に比較したい文字列またはセル参照を入れます。引数は2つだけなので、構文自体は非常にシンプルです。
最小例として、=EXACT(A1,B1)はA1とB1が完全一致ならTRUE、1文字でも違えばFALSEを返します。途中の1文字が違う場合はもちろん、末尾や先頭の違いでもFALSEになる点が重要です。
数式の結果がTRUE/FALSEのままだと扱いづらい場合は、=IF(EXACT(A1,B1),”一致”,”不一致”)のように表示用の文言に変換できます。この形にしておくと、チェック結果を一覧で確認したり、他の人に共有したりする際にも分かりやすくなります。
判定がズレる典型原因(空白・全角半角・改行など見えない差)
EXACTは見た目ではなく中身の文字列を比較するため、末尾の半角スペース1つでも違えばFALSEになります。
コピー&ペーストしたデータでは、このような余分な空白が入り込みやすいため注意が必要です。
全角半角の違いもそのまま差として扱うため、「1」と「1」や「ア」と「ア」は一致しません。数字やカナが混在するデータでは、特にこの違いが原因で想定外のFALSEが出やすくなります。
また、セル内に改行が入っている場合も差になります。同じ文章に見えても、改行の位置や有無が違うだけでFALSEになることがあるため、文章データを比較するときは改行の存在も疑う必要があります。
「範囲A」と「範囲B」が一致するかを判定する
範囲同士の比較では、「完全に一致しているか」だけを知りたいのか、それとも「どこが違うのか」まで特定したいのかで、取るべき手順が変わります。
最初から一発でTRUE/FALSEを出そうとすると、原因追跡が難しくなるため、実務では段階的に比較する考え方が重要です。
ここでは、セル単位での基本的な照合から、行・列単位でのまとめ判定、不一致箇所の特定までを順に整理します。目的別に手順を分けて理解しておくと、データ量が多い場合でも迷いにくくなります。
セル単位で1対1照合する(A1↔B1…の基本)
範囲比較の基本は、「同じ位置のセル同士」をEXACTで1つずつ比較することです。
たとえばC1に=EXACT(A1,B1)を入力し、下方向にコピーすると、各行ごとに一致しているかをTRUE/FALSEで一覧表示できます。
表が横に広い場合は右方向にもコピーできるため、縦横に展開すれば「一致/不一致のマップ」を作ることができます。条件付き書式でFALSEを強調表示すれば、どこがズレているかを視覚的に把握しやすくなります。
また、=IF(EXACT(A1,B1),”OK”,”NG”)のように表示を変えておくと、フィルターでNGだけを抽出でき、差分確認の作業効率が上がります。
行・列単位で一致をまとめて判定する(全体TRUE/FALSE)
セル単位の結果を使って、「範囲全体が一致しているか」を判定することもできます。
たとえば行ごとの一致結果がC1:C10に並んでいる場合、=AND(C1:C10)とすれば、すべてTRUEのときだけTRUEになります。
列方向も同様に考えられ、各行の結果を横に並べてANDでまとめれば、「その行は完全一致か」を判定できます。さらに、それらをもう一段ANDでまとめることで、範囲全体の一致判定が可能です。
一発判定だけを見るなら便利ですが、後から原因を調べる可能性がある場合は、セル単位の結果を残しておくほうが運用上安心です。
不一致の位置を特定する(どこが違うか見つける)
不一致箇所を特定したい場合は、まずFALSEになっているセルや行を絞り込むことが最短ルートです。
FALSEの行だけをフィルターで抽出すれば、広い範囲でも確認対象を一気に減らせます。
見た目が同じのにFALSEになる場合は、空白・改行・全角半角・記号の違いを疑い、LENで文字数を比べたり、TRIMで前後空白を除去して再判定したりすると原因を切り分けやすくなります。
表記ゆれが多いデータでは、比較前に整形用の列を作り、統一した値同士を比較する設計にしておくと、毎回の手直し作業を減らせます。
「イコール(=)」と「EXACT関数」の違いと使い分け
「=」は多くの場面で使える比較ですが、文字列比較では大小文字の扱いがEXACTと異なる点が重要です。
結論として、大小文字を区別して一致判定したいならEXACTを使い、それ以外は「=」で十分なことが多いです。
ただし「=」は見た目の一致を確認する用途で使われがちなので、比較対象が文字列なのか、数値や日付なのかを意識しておくと、判定結果の解釈を間違えにくくなります。
また、どちらの方法でも「空白」や「表記ゆれ」が混ざっていると想定外の結果になりやすい点は共通です。比較前の整形(TRIMなど)も含めて考えると、実務では安定します。
最大の違い(大文字/小文字の扱い)
EXACTは大小文字を区別しますが、一般的な「=」による比較は大小文字を区別しない扱いになることがあります。
たとえばA1が「ABC」、B1が「abc」のとき、=A1=B1はTRUEになり得る一方で、=EXACT(A1,B1)はFALSEになります。
そのため、IDが「Abc」と「abc」を別物として扱う必要がある場面では、EXACTを使う設計が安全です。ログインID、商品コード、APIキーの一部など、大小文字が意味を持つデータは「文字列が同一」であることが条件になります。
逆に、大小文字を区別しない一致判定が欲しい場合は、=LOWER(A1)=LOWER(B1)のように比較前にLOWER/UPPERでそろえる発想もあります。目的が「無視した一致」なのか「厳密一致」なのかを先に決めるとブレません。
=で十分なケース/EXACTを使うべきケース
厳密性よりも運用の分かりやすさを優先するなら「=」、大小文字を含めて厳密な一致が必要ならEXACTが向きます。
迷ったら「大小文字が別物になり得るデータかどうか」を判断軸にすると、選択がぶれにくくなります。
都道府県名のように大小文字の概念がない文字列や、単なる入力チェックで大まかに一致を見たいだけなら「=」でも十分です。一方で、英数字が混ざる製品コードや、大小文字が意味を持つキーではEXACTを使うべきです。
文字列比較で起きやすい誤解(数値・日付・表示形式)
見た目が同じでも、数値や日付は表示形式やデータ型の影響を受けるため、文字列として比較するのか値として比較するのかを分けて考える必要があります。
「001」と「1」は文字列としては別物なので、EXACTでは一致しません。
日付も「2026/1/28」と「2026-01-28」のように表示が違えば、文字列としては不一致になり得ます。比較の前に型をそろえる(DATEVALUEで日付型に寄せる/TEXTで表示形式を統一する)など、前提を整えるのが基本です。
また、数値に見える文字列(”123″)と数値(123)が混ざっていると、後工程(VLOOKUPや突合)で不整合が起きやすいので、VALUEで数値化する/TEXTで文字列化するなど、型の統一を意識します。
使い分け早見表
比較の目的を先に決めると、関数選びが一気に簡単になります。
| やりたいこと | 推奨 | 理由 |
|---|---|---|
| 大文字小文字も含めて完全一致を見たい | EXACT | 大小文字を区別して判定できる |
| 大小文字は気にせず一致を見たい | =(またはLOWER/UPPERで統一) | シンプルで読みやすい/意図を固定できる |
| 見た目は同じなのに不一致が出る原因を探したい | EXACT+切り分け | 見えない差をあぶり出しやすい |
| 先頭ゼロを含めて同じか判定したい | EXACT | 文字列としての一致を確認できる |
| 日付の比較で揺れが出るのを避けたい | 型をそろえてから比較 | 表示ではなく値で比較するほうが安定する |
よくあるつまずきFAQ
最後に、EXACTや文字列比較でよく起きる「あるある」を、原因ごとに具体的に整理します。
EXACTは判定が厳密な分、なぜFALSEになったのか分からず戸惑いやすい関数です。ここでは「どこを疑い、どんな順で確認するか」を流れで押さえます。
この章だけ読んで切り分け手順を覚えておくと、FALSEの理由を追う時間が短くなり、実務での突合や入力チェックがスムーズになります。
見た目は同じなのにFALSEになるのはなぜ?(空白・改行・全角半角)
見た目が同じなのにFALSEになるケースで最も多い原因は、前後の空白、セル内の改行、全角半角の違いといった「見えない差」です。
人の目では判断できない差でも、EXACTは1文字単位で厳密に比較するため、こうした違いがあると確実にFALSEになります。
まず最初の切り分けとして、LEN関数で文字数が同じかを確認します。文字数が違う場合は、空白や改行、余分な文字がどこかに含まれている可能性が高いと判断できます。
文字数が同じでもFALSEになる場合は、全角半角の違い、記号の種類(全角記号と半角記号)、そして大文字と小文字の違いを疑います。特に英数字が混在するデータでは、このパターンが頻発します。
空白や表記ゆれを整えるコツ(TRIM等の考え方)
前後の余計な空白が原因なら、TRIMで整えてから再比較するのが最短です。
「整形前はFALSE、整形後にTRUE」になれば、原因が空白系だったと切り分けできます。
セル内の改行や制御文字が疑わしい場合は、CLEANで不要な文字を取り除いたり、SUBSTITUTEで特定の文字(改行など)を置換したりしてから比較します。これにより、データの癖を吸収できます。
表記ゆれが常に発生する運用(コピー&ペーストが多い、外部データを取り込むなど)の場合は、比較前に「整形専用の列」を用意し、そこで表記を統一してからEXACTを使う設計にすると、毎回の手直し作業が大幅に減ります。
複数セル比較で一番カンタンな手順は?(目的別の最短ルート)
複数セル比較で迷ったときは、まず「何を知りたいのか」を1つに絞るのが近道です。
3セル程度の「全部同じ」ならAND+EXACT、セル数が多いならCOUNTIF、範囲比較ならまずセル単位の一致結果を作る、が最短ルートになりやすいです。
3セル程度で「全部同じか」を知りたいだけなら、基準セルを1つ決めてANDでEXACTを並べる方法が、理解もしやすく修正も簡単です。
セル数が多い「全部同じ」判定では、COUNTIFを使って基準と同じ値の個数が入力数と一致するかを見る方法が、式のメンテナンス性という点で優れています。
範囲Aと範囲Bの比較では、最初から一発判定を狙わず、まずセル単位の一致結果を作るのが結果的に最短ルートです。FALSEのセルだけを確認すればよいため、原因特定まで一気に進めます。
3つ以上のセルをまとめて「全部同じ」を判定する
複数セルで「全部同じか」を見たいときは、まず基準セルと他セルの一致判定をまとめて評価する、という考え方が基本になります。
1対1の比較を積み重ねるイメージを持つと、式の意味が分かりやすくなります。
特に実務では、見た目が似た値が並んでいるケースや、人の目では判断しづらいデータを扱うことが多いため、「なんとなく同じ」に見えるかではなく、関数で明確に判定できる仕組みを作っておくことが重要です。
ここでは、セル数が少ない場合に式の意味が追いやすいANDと、セル数が増減しても式を大きく書き換えずに済むCOUNTIFという、代表的な2つの方法を紹介します。それぞれ向いている場面が異なるので、使い分けの考え方も合わせて確認していきます。
考え方(基準セルを決めて他と比較/範囲で扱う)
「全部同じ」を判定するときは、まず基準セルを1つ決めて、残りのセルがすべてその基準と一致しているかを見る、という発想が基本です。
たとえばA1,A2,A3が全部同じかを確認したい場合、A1とA2が一致していて、なおかつA1とA3も一致していれば、結果として3つすべてが同じだと判断できます。
3つを同時に比べるというより、「基準と他を順番に比べる」と考えると整理しやすくなります。
この考え方を使うと、比較対象が増えても「基準と同じか」を1つずつ増やしていくだけで済みます。そのため、セル数が多い場合でも、判定ロジック自体はシンプルに保てます。
ANDで判定(3つ向け:読みやすさ重視)
3つ程度のセルを比較する場合は、=AND(EXACT(A1,A2),EXACT(A1,A3))のように、EXACTをANDでまとめる方法が最も直感的です。
この式は「A1とA2が同じ」かつ「A1とA3が同じ」の両方がTRUEのときだけTRUEになるため、1つでも違いがあればFALSEになります。
数式を見ただけで「どことどこを比べているのか」が把握しやすい点が、この方法の大きなメリットです。確認や修正が必要になったときも、式の意味を追いやすくなります。
ただし、セル数が4つ、5つと増えてくると、EXACTを並べる数も増え、式が長くなりがちです。その場合は、読みやすさを優先するか、次に紹介する別手段に切り替えるかを検討するとよいでしょう。
COUNTIFで判定(3つ以上向け:増減に強い)
セル数が増える場合は、同じ値が範囲内に何個あるかを数えて、「範囲の個数と一致しているか」で判定する方法が便利です。
たとえばA1:A5が全部同じかを判定したい場合、=COUNTIF(A1:A5,A1)=COUNTA(A1:A5)のように書くと、A1と同じ値の数が入力されているセル数と一致するかどうかで判断できます。
この方法のメリットは、比較対象のセルが増減しても、参照範囲を変えるだけで対応できる点です。行数が増える可能性がある表や、あとからデータが追加される前提のシートでは、特に扱いやすくなります。
ただしCOUNTAは空白を除いた個数を数えるため、空白セルが混じる可能性がある場合は注意が必要です。「空白も含めて同一とみなすのか」「空白は除外して判定するのか」を先に決めたうえで、式を選ぶことが大切です。
空白を含めて厳密に見たい場合は、比較範囲や前提条件をそろえておかないと、意図しないTRUEやFALSEが返ることがあります。判定ルールを先に決めてから式を組むことで、結果の解釈に迷いにくくなります。
重複があるか(どれか1つでも同じ)を判定する
「どれか1つでも同じ」は言い換えると「重複があるか」を意味し、同じ値が2個以上含まれていれば「重複あり」と判断します。
逆に、すべての値が1回ずつしか登場しない状態であれば「重複なし」です。
重複判定は一見シンプルですが、大小文字の扱いや空白の有無によって結果が変わることもあるため、どのレベルで同一とみなすかを意識することが重要です。
この章では、範囲全体に重複があるかを一発でOK/NGにする方法に加え、実務で重複チェックを行う際の考え方や注意点までまとめます。
「重複あり=同じ値が2個以上」を定義して混乱を防ぐ
重複の判定は、本質的には「同じ文字列(または値)が2回以上出てくるか」を見ているだけです。
まずこの定義をしっかり固定しておくと、式の意味や結果の解釈で迷いにくくなります。
たとえばA1:A5に同じ値が2つ以上あれば「重複あり」、すべて異なる値であれば「重複なし」と判断します。どのセルが重複しているかを知りたい場合と、範囲全体として重複があるかだけを知りたい場合では、使う式や考え方が変わる点にも注意します。
また、英字を含むデータでは大小文字を同一とみなすのか、それとも別物として扱うのかを先に決めておかないと、COUNTIFの結果が直感とズレることがあります。目的に応じて「厳密な重複」か「実務上の重複」かを切り分ける意識が大切です。
COUNTIFで範囲内の重複を判定する(全体OK/NG)
範囲に重複があるかをざっくり判定するなら、「入力されている個数」と「重複を除いた個数」を比較する考え方が便利です。
=COUNTA(A1:A5)=COUNTA(UNIQUE(A1:A5))のように書くと、一致していれば重複なし、不一致なら重複ありと判断できます。
ただしUNIQUEが使えない環境では、古典的に「各セルの出現回数が2以上のものがあるか」を別列で判定する方法が現実的です。少し手間はかかりますが、仕組みが分かりやすく、応用もしやすいのがメリットです。
具体例として、B1に=COUNTIF($A$1:$A$5,A1)を入力し、B5までコピーします。そのうえで=MAX(B1:B5)>=2とすれば、どこか1つでも2回以上出てくる値があれば重複ありと判定できます。
この方法は大小文字を区別しない前提になりやすいため、大小文字も含めて厳密に重複を判定したい場合は、EXACTを使った比較設計に切り替える必要があります。
実務例(入力ミス検知・名簿・IDチェック)と注意点
名簿の社員番号や注文IDのように、重複が致命的なデータでは、入力時点で重複がないかを機械的にチェックしておくと安心です。
後から目視で確認するよりも、入力直後にエラーに気づける仕組みのほうがミスを防げます。
メールアドレスのように大小文字の扱いがシステム側で異なる場合があるデータでは、運用ルールとして「すべて小文字に統一して扱う」などの前処理を決めたうえで判定すると、想定外の重複や漏れを防ぎやすくなります。
また、重複が見つかったあとに「どれが重複か」を特定したい場合は、重複回数だけでなく、該当行を強調表示する条件付き書式なども組み合わせると、修正作業がスムーズに進みます。