【要点】EXACT関数で大文字・小文字を区別した文字列比較
- EXACT関数: 2つの文字列が完全に一致するか(大文字・小文字も区別)を判定します。
- 数式の基本形: =EXACT(文字列1, 文字列2) で使用します。
- TRUE/FALSEの結果: 一致すればTRUE、一致しなければFALSEを返します。
ADVERTISEMENT
目次
EXACT関数が文字列比較で特別な理由
Excelで文字列を比較する際、通常は「=」演算子を使用します。例えば、「=A1=B1」という数式は、セルA1とセルB1の内容が一致するかどうかを判定します。
しかし、この「=」演算子は、デフォルトでは大文字と小文字を区別しません。つまり、「Apple」と「apple」は、この演算子では「一致する」と判定されてしまいます。
データ入力時のミスや、外部システムからのデータ連携などで、大文字・小文字の違いが重要な意味を持つ場合があります。このような場合に、EXACT関数が真価を発揮します。
EXACT関数は、指定した2つの文字列が、文字数、文字の種類、そして大文字・小文字まで含めて、完全に同一である場合にのみTRUEを返します。
EXACT関数の基本的な使い方と数式
EXACT関数は非常にシンプルで、2つの引数(比較したい文字列)を指定するだけで利用できます。
EXACT関数の数式入力手順
- 比較したい文字列の準備
比較したい2つの文字列が入力されているセルを用意します。ここでは、セルA1とセルB1に比較したい文字列が入っていると仮定します。 - 結果を表示するセルを選択
比較結果(TRUEまたはFALSE)を表示したいセルを選択します。例えば、セルC1を選択します。 - EXACT関数の数式を入力
選択したセルC1に、以下の数式を入力します。
=EXACT(A1, B1) - Enterキーで確定
数式を入力したらEnterキーを押します。セルC1に、A1とB1の文字列が完全に一致するかどうかの結果が表示されます。 - 数式をコピー(必要に応じて)
他の行でも同様の比較を行いたい場合は、セルC1のフィルハンドル(セルの右下隅にある小さな四角)をドラッグして、数式をコピーします。
ADVERTISEMENT
EXACT関数が返す結果の詳細
EXACT関数は、比較対象の文字列に基づいて、以下のいずれかの論理値を返します。
TRUEが返される場合
以下の条件をすべて満たす場合にTRUEが返されます。
- 文字数の一致: 2つの文字列の文字数が同じであること。
- 文字の種類の一致: 使用されている文字(アルファベット、数字、記号など)がすべて同じであること。
- 大文字・小文字の一致: アルファベットの場合、大文字と小文字の区別も含めて完全に一致すること。
例:
- 「Excel」と「Excel」 → TRUE
- 「EXCEL」と「EXCEL」 → TRUE
- 「Excel123」と「Excel123」 → TRUE
- 「A1B2」と「A1B2」 → TRUE
FALSEが返される場合
上記のTRUEになる条件のいずれか一つでも満たさない場合にFALSEが返されます。
- 大文字・小文字の違い: 「Excel」と「excel」 → FALSE
- 文字数の違い: 「Excel」と「Excels」 → FALSE
- 余分なスペース: 「Excel 」(末尾にスペースあり)と「Excel」 → FALSE
- 一部の文字の違い: 「Apple」と「ApPle」 → FALSE
このように、EXACT関数は非常に厳密な比較を行います。
EXACT関数と他の比較方法の比較
Excelには、文字列を比較するためのいくつかの方法があります。EXACT関数と、一般的な「=」演算子、そして大文字・小文字を区別しない比較を意図する場合の関数について比較してみましょう。
EXACT関数と「=」演算子の比較
最も基本的な比較は「=」演算子です。この演算子は、大文字・小文字を区別せずに文字列を比較します。
「=」演算子の仕組み
例えば、セルA1に「Apple」、セルB1に「apple」が入っているとします。
数式「=A1=B1」を入力すると、結果はTRUEになります。
これは、Excelが比較の際に自動的に大文字・小文字を無視して処理するためです。
使い分けのポイント
「=」演算子は、大文字・小文字の違いを気にせず、単に内容が同じかどうかを確認したい場合に便利です。
一方、EXACT関数は、大文字・小文字の違いも厳密に判定したい場合に不可欠です。
大文字・小文字を区別しない比較の代替手段
もし、EXACT関数のように大文字・小文字を区別したいが、EXACT関数以外の方法を使いたい場合、あるいは特定の関数で大文字・小文字を区別したい場合は、他の関数を組み合わせる方法があります。
FIND関数とSEARCH関数の違い
文字列の検索にはFIND関数とSEARCH関数があります。
- FIND関数: 大文字・小文字を区別して、指定した文字列が最初に見つかる位置を返します。
- SEARCH関数: 大文字・小文字を区別せず、指定した文字列が最初に見つかる位置を返します。
これらの関数をIF関数と組み合わせることで、大文字・小文字を区別した比較を行うことができます。
FIND関数を使った比較例
例えば、セルA1とセルB1の内容が、大文字・小文字も含めて完全に一致するかどうかを判定したいとします。
まず、A1とB1の文字数が同じであることを確認します。
次に、FIND関数を使って、A1内の文字列がB1の文字列として存在するかどうかを調べます。
数式は以下のようになります。
=IF(AND(LEN(A1)=LEN(B1),FIND(A1,B1)=1),”一致”,”不一致”)
ただし、この方法はFIND関数の仕様上、A1がB1の一部である場合(例:A1が「App」、B1が「Apple」)でもFIND関数が成功してしまうため、厳密な一致判定にはなりません。
EXACT関数が、このような複雑な条件を考慮せずに、シンプルに完全一致を判定できるため、最も効率的で推奨される方法です。
EXACT関数でよくある失敗パターンと対処法
EXACT関数はシンプルですが、意図した結果が得られない場合があります。ここでは、よくある失敗パターンとその対処法を解説します。
失敗1:数式の結果が常にFALSEになる
原因:
- 文字列の末尾や途中に、目に見えないスペース(全角スペース、半角スペース)が含まれている。
- 比較対象の文字列の片方または両方に、意図しない文字(例:改行コード)が含まれている。
- 数式で指定しているセルが間違っている。
対処法:
- TRIM関数でスペースを削除する
文字列の先頭や末尾、単語間の余分なスペースを削除するには、TRIM関数を併用します。
=EXACT(TRIM(A1), TRIM(B1)) - CLEAN関数で制御文字を削除する
改行コードなどの制御文字が含まれている場合は、CLEAN関数も併用します。
=EXACT(CLEAN(TRIM(A1)), CLEAN(TRIM(B1))) - セルの内容を目視で確認する
TRIM関数やCLEAN関数で対応できない特殊文字が含まれている可能性もあります。直接セルを確認し、必要であれば手動で修正してください。 - 数式のセル参照を確認する
数式バーやセルの数式を確認し、正しくセルが指定されているか再確認してください。
失敗2:「#VALUE!」エラーが表示される
EXACT関数自体が「#VALUE!」エラーを返すことは稀です。通常、このエラーはEXACT関数を含むより複雑な数式で発生します。
原因:
- EXACT関数に数値やエラー値など、文字列以外の引数が渡されている。
- 数式全体で、引数の型が一致しない箇所がある。
対処法:
- EXACT関数に渡している引数が、どちらも文字列または文字列を返す関数(例:LEFT, RIGHT, MID, CONCATENATE)の結果であることを確認してください。
- 数式全体を見直し、数値と文字列の比較が混在していないか確認してください。必要であれば、VALUE関数やTEXT関数で型を変換してください。
失敗3:大文字・小文字が区別されない
これはEXACT関数の本来の動作ではないため、ほとんど発生しません。しかし、もしEXACT関数を使っているのに大文字・小文字が区別されない場合、以下の可能性が考えられます。
原因:
- 実際にはEXACT関数ではなく、「=」演算子を使っている。
- 数式が複雑にネストされており、EXACT関数の結果が別の関数(例:LOWER関数やUPPER関数)によって変換されている。
対処法:
- 数式バーで、使用している関数が確かにEXACT関数であることを確認してください。
- 数式が複雑な場合は、各ステップの結果を順に確認し、EXACT関数の出力が意図通りか検証してください。
EXACT関数の応用例
EXACT関数は、単に2つの文字列が一致するかを判定するだけでなく、さまざまな場面で活用できます。
応用例1:重複データの検出
大量のデータリストから、大文字・小文字の違いだけが異なる重複データ(例:「東京」と「とうきょう」ではなく、「Tokyo」と「tokyo」)を検出したい場合に利用できます。
例えば、2つの列に顧客名が入っている場合、EXACT関数とIF関数を組み合わせ、「=IF(EXACT(A1,B1),”完全一致”,”不一致”)」のように表示させることで、完全一致するレコードをハイライトしたり、抽出したりできます。
応用例2:パスワードやIDの検証
ユーザーが入力したパスワードやIDが、登録されているものと大文字・小文字を含めて完全に一致するかを検証する際に使用できます。これは、VBAや他のプログラミング言語と連携させる場合に特に有効です。
応用例3:条件付き書式との連携
条件付き書式とEXACT関数を組み合わせることで、特定の条件を満たすセル(大文字・小文字まで完全に一致するペアなど)を視覚的に強調表示できます。
例えば、A列とB列の文字列を比較し、完全に一致する場合にA列のセルの背景色を変えたい場合、条件付き書式の設定で「数式を使用して、書式設定するセルを決定」を選び、数式に「=EXACT($A1,$B1)」と入力します。
Excelのバージョンによる違い
EXACT関数は、Excelの初期バージョンから存在する基本的な関数です。そのため、Excel 2019、Excel 2021、Microsoft 365といった主要なバージョン間で、機能や使い方の違いはありません。
どのバージョンをお使いでも、本記事で解説したEXACT関数の使い方や応用はそのまま適用できます。
まとめ
この記事では、ExcelのEXACT関数を使用して、大文字・小文字を区別した文字列比較を行う方法を解説しました。
EXACT関数を使えば、2つの文字列が完全に一致するかどうかを、文字数、文字の種類、大文字・小文字の区別まで含めて厳密に判定できます。
これにより、データ入力ミスや重複データの検出など、さまざまな場面で正確な比較が可能になります。
今後は、データの照合や検証作業で、大文字・小文字の区別が必要な場合に、ぜひEXACT関数を活用してください。
ADVERTISEMENT
超解決 Excel・Word研究班
企業のDX支援や業務効率化を専門とする技術者チーム。20年以上のExcel・Word運用改善実績に基づき、不具合の根本原因と最短の解決策を監修しています。ExcelとWordを使った「やりたいこと」「困っていること」「より便利な使い方」をクライアントの視点で丁寧に提供します。
Office・仕事術の人気記事ランキング
- 【Outlook】宛先が「オートコンプリート」に出ない・間違っている時の修正手順|履歴の削除と再構築
- 【Outlook】メールの受信が数分遅れる!リアルタイムで届かない時の同期設定と送受信グループ設定
- 【Word】差し込み印刷で数字の桁を整える!金額にカンマ(桁区切り)を入れる設定
- 【Excel】矢印キーで「セルが動かず画面がスクロールする」!ScrollLockの解除方法(ノートPC対応)
- 【Outlook】「メール送信を5分遅らせる」設定!誤送信を防ぐ最強のディレイ機能
- 【神技】保存せずに閉じたExcel・Wordファイルを復元する!消えたデータを復活させる4つの救出法
- 【Outlook】予定表の「祝日」が表示されない!最新カレンダーの追加と二重表示の修正手順
- 【Teams】会議の「参加者リスト」を出席後にダウンロードする!誰が参加したか確認する手順
- 【Teams】メッセージを「保存済み」にして後で読む!重要なチャットをブックマークして整理する技
- 【Excel】文字がセルの枠からはみ出す・隠れる!「折り返して表示」と「縮小して全体を表示」の使い分け
