ExcelやスプレッドシートのIF関数を使って文字列の一致・不一致を判定したいとき、イコールに続けて文字列を書くとエラーになってしまいます。
たとえば「セルA1に入っている文字列がabcのときは○、そうでないときは×を表示するIF関数」をセルB1に書きたいとします。
上のようにイコールの直後に文字列を書いてセルを確定すると「#NAME?」というエラーになり、うまくいきません。
今回はこのようなエラーを避けつつ文字列の一致・不一致を判定できるIF関数の書き方を紹介します。
(なお以下ではExcelのスクリーンショットを交えて解説しますがスプレッドシートでも全く同じやり方ですので参考にしていただければと思います。)
イコールの後ろに文字列を指定する方法
ExcelのIF関数でイコールに続けて文字列を書きたいときはその文字列を半角のダブルクォテーション「 " 」で囲むようにします。
半角ダブルクォテーションで囲むことにより、Excelに対し「abcを文字列として扱ってね」と正しく伝えることができます。
(逆に半角ダブルクォテーションが無い場合、Excelはabcを関数名として扱えばいいのか文字列として扱えばいいのかわかりません。そのため最初に見たエラーが出ます。)
上の例では比較演算子「 = 」(イコール)がセルA1の値である「abc」と文字列「abc」とを比較し、TRUEを返します。TRUEを受け取ったIF関数は「○」を表示します。
このように文字列を半角ダブルクォテーションで囲む点だけ気を付ければ、文字列の一致・不一致をIF関数を使って判定できます。
アルファベット以外の文字列(ひらがな・カタカナや漢字)でも同じ要領です。次の例を参考にしてください。
文字列を囲むダブルクォテーションは半角文字で書くようにしましょう。間違って全角文字で書くと正しく機能しませんので気を付けてください。
アルファベットの大文字と小文字が区別されないことに注意
上で解説したやり方をそのまま使う場合、アルファベットの大文字・小文字が区別されないことに注意する必要があります。
たとえばセルA1には大文字アルファベットのABCが、セルB1にはIF関数が書いてあり、IF関数の条件部分のイコールの後ろに小文字アルファベットのabcが記されていたとします。
このとき2つのものを比較する役割を担う「 = 」(イコール)は大文字と小文字を区別しません。そのためA1の値「ABC」と文字列「abc」とは同じであると判断してTRUEを返します。TRUEを受け取ったIF関数は「○」を表示します。
アルファベットの大文字と小文字を区別しなくていい場合はそのままで問題ないのですが、区別したい場合(つまり上の例で「×」を表示したい場合)はもう一工夫必要です。
アルファベットの大文字と小文字を区別したい場合
大文字と小文字を区別するためには、IF関数の条件を記述する部分にイコールを使わずEXACT関数を使うようにします。
EXACT関数は2つのものが完全に一致するかどうかを判定する関数です。イコールとは異なり100%一致するかどうかを見極めるので大文字・小文字もちゃんと区別します。2つのものが一致していればTRUEを、一致していなければFALSEを返します。
上の例ではEXACT関数はA1の値である「ABC」と文字列「abc」とを比較し、FALSEを返します。FALSEを受け取ったIF関数は「×」を表示します。
このようにEXACT関数を組み込んだIF関数であればアルファベットの大文字・小文字を区別しつつ文字列の一致・不一致を判定できます。
この記事のまとめ
今回はExcelやスプレッドシートのIF関数のイコール直後に文字列を指定する方法について解説しました。子の記事の要点を復習すると次の通りです。
- IF関数においてイコールの後ろに文字列を書きたいときはその文字列をダブルクォテーションで囲む
- アルファベットの大文字・小文字を区別したいときはIF関数の条件を記述する部分にEXACT関数を使う
以上、参考になれば嬉しいです。