Excel(エクセル)EXACT関数の使い方|文字列の比較
使用関数:EXACT、IF
EXACT関数とは?
EXACTの読み方と意味
EXACTは「きっかり」とか「ちょうど」を意味する英語です。比較して等しいという意味ですね。イグザクトと読みます。文字列を比較して一致か不一致かを判定する関数です。返す値は「TRUE」か「FALSE」です。
EXACT関数と比較演算子=イコールの違い
EXACT関数は比較演算子の「=イコール」とほぼ同様の働きをします。Excelで入力された2つのデータを照合し、一致・不一致を判定してTRUEかFALSEを返すのはEXACTも=も同じです。
大文字と小文字を比較する
EXACT関数と=イコールの一番大きな違いは「大文字と小文字を区別するかしないか」です。
下図は大文字小文字が混在したテキストと、小文字だけ、大文字だけのテキストをEXACT関数と=イコールでそれぞれ比較した表です。
- =イコールの数式:=B2=B4、=B2=B5
- EXACT関数の数式:=EXACT(B2,B4)、=EXACT(B2,B5)
- =イコールは大文字小文字を区別しないため同じデータと判定し、「TRUE」を返します。
- EXACT関数は大文字小文字を区別するため違うデータと判定し、「FALSE」を返します。
大文字小文字の別なく比較したいなら「=イコール」で、大文字小文字の差異を明確にして比較したいなら「EXACT関数」を選択しましょう。
全角と半角を比較する
EXACT関数と=イコールのどちらも全角と半角は区別します。
ひらがなとカタカナを比較する
EXACT関数と=イコールのどちらも漢字とひらがなとカタカナは区別します。
数値と数式を比較する
下図は一見「5」という同じ数値を比較しているように思えますが、C4セルには「=10/2」という数式が、C5セルには「=2+3」という数式が入力されています。
EXACT関数と=イコールのどちらも「TRUE」が返り、数式自体を比較するのではなく、結果を比較しているのが分かります。
EXACT関数の引数に「=10/2」「=2+3」と数式を指定しても同じです。数式の結果が同じであるかどうかを判定します。
日付を比較する
下図は「2022/1/30」という日付と表示形式の違う日付をEXACT関数と=イコールで比較したものです。
EXACT関数と=イコールのどちらも「TRUE」が返り、表示形式や書式に関係なく、日付を比較しているのが分かります。
表示形式を「日付」から「文字列」に変更しても結果は同じです。
EXACT関数の使い方
EXACTは「数式」タブ→「関数ライブラリ」→「文字列操作」に格納されています。一覧を下へスクロールして「EXACT」をクリックします。
EXACT関数の引数は「文字列1」「文字列2」の2つです。引数には文字列の他、数値・数式・日付・時刻・セル参照を指定できます。
EXACT関数を応用してデータの正誤を比較する
EXACT関数で質問に対する正解と「回答A」「回答B」のデータを照合して正誤を判定します。
判定の最初のセル(C6)にEXACT関数を入力します。第一引数に正解の最初のセルを絶対列参照で指定、第二引数に回答の最初のセルを指定します。
数式は「=EXACT($B6,C2)」
C6セルのEXACT関数を他のセルにフィルコピーします。
IF関数にEXACT関数を入れ子して決まった文字を表示させる
前章で正誤を判定したセルに「TRUE」「FALSE」ではなく、「正解」「不正解」の文字を表示させます。
判定の最初のセル(C6)にIF関数「=IF(EXACT($B6,C2)=TRUE,“正解”,“不正解”)」を入力します。
- IF関数の第一引数:論理式 → EXACT($B6,C2)=TRUE(B6とC2を比較してTRUEだったら)
- IF関数の第二引数:真の場合→ ”正解”(正解と表示する)
- IF関数の第三引数:偽の場合→ ”不正解”(不正解と表示する)
C6セルのIF関数を他のセルにフィルコピーします。
条件付き書式で同じ文字列のセルに色を付ける
EXACT関数で「TRUE」「FALSE」を表示させたセルを色分けする方法も書いておきます。「TRUE」と入ったセルに条件付き書式で色を付けます。
判定の最初のセル(C6)を選択して、「ホーム」タブ→「スタイル」グループ→「条件付き書式」をクリックしてメニューから「新しいルール」を選択します。
「新しい書式ルール」ダイアログが開いたら、ルールの種類から「数式を使用して、書式設定するセルを決定」を選択、「次の数式を満たす場合に値を書式設定」のテキストボックスに「=C6=TRUE」と入力して、書式ボタンから塗りつぶしやフォントの色などを設定します。
「C6セルがTRUEだったら」という条件を数式で指定し、その場合の書式を自由に設定するということです。
フィルコピーして完了。EXACT関数で「TRUE」の判定が出たセルに色が付きました。
EXACT関数で複数の範囲を比較する
スピルが使えるExcel(2019~、365)の環境では複数の範囲指定ができます。
前章でEXACT関数を応用してデータの正誤を比較した例では、判定のC6セルを選択してEXACT関数の引数ダイアログを開き、
- 第一引数:文字列1に「正解」のセル範囲を「B6:B8」と指定
- 第二引数:文字列2に正誤の判定をする解答のセル範囲を「C2:D4」とまとめて指定
計算式 =EXACT(B6:B8,C2:D4)
この式を最初のセルに入れるだけで、他のセルへ予測値が自動表示されます。オートフィルコピーする必要はありません。
EXACT関数でシートを比較する
スピルが使えるExcel(2019~、365)の環境ではEXACT関数でシートのデータが一致か不一致かを比較できます。
不一致のデータが入っているセルの抽出もできます。
ほとんどのデータが一致している2つのシートをEXACT関数で比較してみましょう。
別シートの任意のセルでEXACT関数のダイアログを開き、第一引数の「文字列1」に「Sheet1」のデータ範囲を指定、第二引数の「文字列2」に「Sheet2」のデータ範囲を指定します。
手入力してもいいですが、それぞれドラッグで指定すればミスが防げます。
計算式 =EXACT(Sheet1!A1:F25,Sheet2!A1:F25)
別シートに、指定したセル範囲の数だけ「TRUE」と「FALSE」が表示されます。一見、同じに見えるシートの不一致箇所を抽出することができますね。
- EXACT(イグザクト)は文字列を比較して一致か不一致かを判定する関数です
- EXACTの第一引数は「文字列1」。比較する元の文字列を、多くはセル参照で指定します
- EXACTの第二引数は「文字列2」。比較する先の文字列を、多くはセル参照で指定します
- EXACT関数は比較した文字列の一致か不一致を「TRUE」「FALSE」で返します
- EXACT関数と比較演算子の=イコールはほぼ同じ働きをします
- EXACT関数と比較演算子の=イコールの違いは「大文字と小文字」の判定で、EXACTは大文字と小文字を区別します
- EXACT関数は「全角と半角」「カタカナとひらがな」を区別します
- EXACT関数の引数には数式も指定できますが、数式そのものでなく、計算結果を比較します
- EXACT関数は日付も比較しますが、表示形式は無視されます
- IF関数の論理式にEXACT関数を入れ子すれば決まった文字を表示させることができます
- スピルが使えるExcelなら、複数範囲をまとめて比較したり、2つのシートを比較したりできます