「一致しているはずなのに、なぜか一致しない。」
・=A1=B1 が FALSE になる
・VLOOKUP関数で一致しない
・XLOOKUP関数でヒットしない
この原因のほとんどは、
関数ではなく“データの中身”にあります。
Excelは見た目ではなく、
“データの中身”で一致判定をしています。
この記事では、一致しない原因の多くを占める5つのポイントを、実務目線でわかりやすく解説します。
一致しているのに一致しない主な原因一覧
まずは全体像です。
✅前後にスペースが入っている
✅ 大文字小文字の違い
✅全角と半角の違い
✅数値と文字列の違い
✅改行コードなど見えない文字
実務でデータ照合を行う際、この5つを確認するだけでほとんど解決します。
原因① 前後の空白(スペース)が含まれている【最頻出】
実務で最も多い原因です。
見た目は同じように見えても、実は空白が含まれているケースが多々あります。
例えば、以下では”ABC”という文字列を入力しています。
上のほうがスペースなし、下のほうがスペースありですが、見た目では全然分かりませんよね。

■確認方法
スペースがあるかどうかは、LEN関数を使うことで確認できます。
LEN関数は対象セルの文字列数をカウントしますが、実はスペースも1カウントします。
=LEN(A3)
こうすることで、以下の通りスペースが含まれているかどうかを確認することができます。

■解決方法
TRIM関数を使うことで、余分なスペースを取り除くことができます。
=TRIM(A3)
TRIM関数で処理された文字列は、以下の通りスペースが除外されていることが確認できます。

原因② 大文字小文字の違い
大文字か小文字かで、関数によっては一致する・一致しないという状況が発生してしまいます。
例えば、以下のように「ab001」と「AB001」を以下の数式で比較した場合、同じ文字列として認識されます。
=A2=A3

多くの関数では大文字小文字を区別することができないので、区別したい場合は困ってしまいます。
■判定方法
その場合、EXACT関数を使うことで、文字列が完全一致しているかどうかを判定できます。
EXACT関数は大文字小文字も区別できる、データチェック時に重宝する便利な関数です。
=EXACT(A2,A3)
TRUEなら完全一致、FALSEなら一致していないということになります。

社員IDや商品コード管理、パスワードなどは大文字小文字を区別では重要です。
EXACT関数はFILTER関数などと組み合わせるとより便利な活用ができます。
👉詳細は以下の記事をチェックしてみてください。
■大文字・小文字いずれかに変換する方法
大文字・小文字が混在している場合、
・大文字に寄せる → UPPER関数
・小文字に寄せる → LOWER関数
で変換を行うことができます。
=UPPER(A2)
=LOWER(A3)
原因③ 全角と半角の違い
全角か半角かも、文字列が一致しないという状況が発生してしまいます。
見た目は似ていますが、以下の通り別文字扱いになります。

管理しているファイルは全角で入力、システムから出力したデータは半角などはあるあるだと思います。
■全角・半角いずれかに変換する方法
全角・半角が混在している場合、
・全角に寄せる → JIS関数
・半角に寄せる → ASC関数
で変換を行うことができます。
=JIS(A2)
=ASC(A3)
原因④ 数値と文字列の違い
見た目上は同じ数字でも、数値が文字列になっているケースもあります。
文字列になっている数字は左側に寄るので、見た目でパっと判断が付きやすいです。
しかし、以下の通り別値扱いとなります。

■判定方法
ISNUMBER関数を使うことで、数値かどうかを判定できます。
=ISNUMBER(A3)
数値ならTRUE、数値でないならFALSEとして判定されます。

■数値・文字列いずれかに変換する方法
数値・文字列が混在している場合、
・数値に寄せる → VALUE関数
・文字列に寄せる → TEXT関数
で変換を行うことができます。
=VALUE(A3)
=TEXT(A2,0)
原因⑤ 改行コードや見えない文字
改行や見えない文字でも、文字列が一致しないという状況が発生します。
他のアプリケーションからのデータインポートやコピー貼り付けで発生することがあります。
例えば以下のように、改行は見えませんが、改行があることによって同じ文字列と認識されないことがあります。

■解決方法
CLEAN関数を使うことで、余分なスペースを取り除くことができます。
=CLEAN(A2)
CLEAN関数で、セルA2の文字列に入っていた改行が削除され、A3セルと文字列が合致しました。


え、じゃあTRIM関数でもいいんじゃない?
と思われた方もいらっしゃるかもしれません。
しかしTRIM関数は余分なスペースを削除する関数なので、改行などを削除することはできません。
ちなみにCLEAN関数とTRIM関数の組み合わせは、より強力なデータクリーニングが可能で有効的な方法です。
よくある質問(FAQ)
実際の現場でよく聞かれる質問をまとめました。
Excelで数値が文字列になっているか確認する方法は?

はい、あります。
もっとも簡単なのは次の方法です。
=ISNUMBER(A1)
TRUEなら数値、FALSEなら文字列です。
また、次のポイントでも判別できます。
・文字列の数字は左寄せになりやすい
・セル左上に緑のエラー表示が出る場合がある
・VALUE関数で変換できる
見た目ではなく、関数で確認するのが確実です。
コピペしたデータだけ一致しないのはなぜですか?

コピー元のデータに、
・末尾スペース
・改行コード
・制御文字
・全角と半角の混在
が含まれている可能性があります。
特にWebサイトやPDFからコピーしたデータは、
見えない文字が混入しているケースが多いです。
データを一括で整形する方法はありますか?

あります。
補助列を作り、次のような式で整形します。
=TRIM(CLEAN(A1))
必要に応じて、
VALUE/UPPER/ASC関数などを組み合わせます。
整形した列を基準に比較・検索すれば、
一致しない問題は大幅に減ります。
一致しない原因を効率よく確認する順番は?

迷ったら、次の順番で確認すると効率的です。
1.前後の空白(LEN関数)
2.数値と文字列(ISNUMBER関数)
3.全角と半角
4.改行など見えない文字(CLEAN関数)
5.大文字小文字(EXACT関数)
■なぜ「関数」ではなく「データ」を疑うべきなのか
一致しないとき、多くの人は関数を疑います。
しかし実際は、関数よりもデータの状態に原因があるケースが大半です。
・Excelは見た目ではなく、データ構造で判定している
・空白も1文字
・数値と文字列は別型
・改行も1文字
と、見た目が同じような場合でも、EXcelでは一致しないことがあります。
まずはデータを整える。
それが最短解決ルートです。
まとめ|一致しないときはこの順番で確認
「一致しているのに一致しない」ときは、
① 前後の空白
② 数値と文字列
③ 全角半角
④ 改行など見えない文字
⑤ 大文字小文字
この順番で確認してください。
多くの場合、原因は“関数”ではなく“データの中身”にあります。
焦らず、一つずつ潰していけば解決します。
この記事を参考にして、チェックしてみてください。
最後まで読んでいただき、ありがとうございました。


コメント