Excel。セルとセルの文字列が一致しているかどうかを判断するにはどうしたらいい?
<EXACT関数・DELTA関数>
Wordの校閲タブにある「比較」というのがあって、文書と文書を比較して、異なっているところ箇所を確認できるという機能があるのですが、Excelに、「比較」のような機能はありません。
入力した数値。
あるいは、セルに入力した文字が原版と比べて、修正があったかどうかを判断するには、どのようにしたらいいのでしょうか?
当然、セルの内容を比較したいわけですから、「IF関数をつかう」というのがオーソドックスな方法だと思いますが、Excelには、IF関数をつかわなくても、簡単に比較する関数が用意されています。
最初に数値の場合をみていきましょう。
A列とB列の数値が合致しているかしていないかを算出する数式がC列に設定されています。
C1に設定した数式は、
=DELTA(A1,B1)
A1とB1を比較して、合致していれば、「1」を算出します。TRUEということですね。
合致していなければ「0(ゼロ)」を算出します。FALSEということですね。
あとは、算出した値が0だったら、塗りつぶすとか、0の件数を算出するなどすることで、異なっている場所に対してアクションをとることも容易になるかと思われます。
ただ、このDELTA関数。
ちょっと残念なところがありまして、それは、「数値」にしか対応していない。
つまり、文字には対応してくれないわけです。
なので、文字でも、数値でも対応してくれるのが「EXACT関数」です。
比較1と比較2を比べた結果の表です。
F列のDELTA関数をつかうと、数字ではないので、#VALUE!というエラーが表示されてしまいました。
よって、このような文字では使うことができません。
E列はEXACT関数をつかって算出しています。
E2の数式は、
=EXACT(A2,C2)
DELTA関数同様に、わかりやすい関数ですね。
合致していれば、TRUEを算出してくれます。
4行目のように、合致していないと、FALSEを算出してくれます。
文字列は数値と異なり、異なっているかどうかを、目視で確認するのは、厳しいように感じます。
用意した文字列も、A4は「表現できます。」となっているところをC4では「表現できる。」と変えてみました。
EXACT関数自体の作成は、とても簡単ですが、ちょっと残念なのは、算出結果が、「TRUE」と「FALSE」で算出されてしまう点ですね。
そこで、数式を次のように変えてみます。
=EXACT(A2,C2)*1
というように、「*1」。
1を乗算させると、TRUEは「1」。
FALSEは「0」に置き換わりますので、わかりやすくなります。
ExcelでTRUE/FALSEのときは、「*1」と覚えておくと、ちょっと便利です。
最後に、EXACT関数は、シート間でも使うことができます。
書類に加筆修正があったかどうか、確認するときなどに、IF関数だけではなくて、EXACT関数というものあると知っておくと、使えるかもしれませんね。