エクセルを使っていると、セルの中に『何か入力されていたら』という判定をする場合はIF関数を使うことが多いです。
また、セルに入力されているのが文字なのか、数値(数字)なのかという判定では、ISTEXT関数やISNUMBER関数を使います。
ISTEXT関数やISNUMBER関数を単独で使うことはあまりなく、ほとんどはIF関数と組み合わせます。
組み合わせるとなると一見難しそうですが、IF関数の使い方さえ理解すれば、そんなに難しくはありません。
ここでは、次の判定をする場合のIF関数と、IF関数と組み合わせる関数の使い方について解説します。
- セルに何か入っていたら。(文字でも数値でも)
- セルに文字が入っていたら。
- セルに値(数字)があれば。
- セルの内容が一致しているか。
- 文字や値が一致しない場合の原因と対策
エクセルでは入力チェックや、比較(一致判定)はよく使うので、ぜひ参考にしてください!
『何か入力されているセル』や『空白(未入力)のセル』のカウント(個数)を知りたい場合は、次の記事のCOUNTA関数、COUNTBLANK関数が簡単に使えます。
IF関数を使ってセルに『何か入力があるか』を判定
まずは、『セルに何か入力されているか?』をIF関数で判定する場合。
つまり、文字でも数値でも、とにかく何か入力されているか?という判定です。
下の画像の例では、判定対象のセルはC列で、判定のIF関数が入力されているのがD列。
そして、IF関数の内容を解説用としてE列に表示させています。
D5には次の数式が入力されています。
=IF(C5 <> "", "何か入っている", "何もなし")
このIF関数を解説すると、『C5 <> “”』が判定式となり、『<>』は否定、『””』は空(未入力)をあらわします。
つまり、『C5 <> “”』は『C5のセルが空(未入力)でないか?』という判定になります。
関数などでは、文字列は『”』(ダブルクォーテーション)で囲むルールとなっていますが、『””』の間には何も文字がないので『空』という意味になります。
そして、判定の結果、真(空でない)の場合は、『真の処理』に書いている『何か入っている』という文字列を判定結果(D5)に表示し、偽(空)の場合は『何もなし』を表示します。
これをふまえると、№1のC列には『文字』が入力されているので、D5に『何か入っている』が表示されるわけです。
同様に、№2も『123』が入力されているので、何か入っている』が表示されます。
№3は一見何も入力されていないようですが、実は空白(スペース)の文字があるので、これも『何か入っている』を表示。
空(スペース)は見えないですが、文字であることに注意。
そして、№4は本当に何も入っていないので、偽の処理の『何もなし』を表示。
最後に、№5の判定式の『C8 = “”』は『空であるか?』という意味で、今までの判定式とは逆になり、『何もなし』が表示されます。
ここではIF関数を簡単に説明していますが、IF関数についての詳しい解説は次の記事に書いています。ぜひ参考にしてください。
ISTEXT関数とIF関数で『文字が入っていたら』を判定
次は、セルに『文字』が入力されているかどうかを判定する方法。
『文字かどうか』を判定するのは、ISTEXT関数で、英語の『is text?』ですね。
=IF(ISTEXT(C5), "文字", "文字でない")
これの式を解説すると、ISTEXT(C5)は『C5が文字か?』という判定になり、『文字』だった場合、真なので『文字』をD5に表示、C5が文字でない場合は、偽の『文字でない』を表示します。
見ての通り、C5は文字なので、『文字』が表示されてますね。
これをふまえると、№2のC6は数値なので、結果は『文字でない』となり、№3は空白(スペース)が入力されているので、『文字』が表示されます。
ISNUMBER関数とIF関数で『値があれば』を判定
続いては、『値』(数字)かどうかの判定。
こちらはISNUMBER関数で判定します。(『is number?』ですね)
№1では、『ISNUMBER(C5)』は『C5が数値か?』という判定になり、『数値』だった場合(真)は『数値』をD列に表示、数値でない場合(偽)は『数値でない』を表示します。
この判定により、№1のC5は文字なので『数値でない』が表示されています。
そして、№2のC6は数値なので、判定結果は『文字でない』
№3は空白(スペース)が入力されているので、『文字』が表示されます。
IF関数を使って『セルの内容が一致しているか』を判定
続いては、異なるセルの内容が一致しているかどうかの判定。
これもIF関数を使います。
№1のIF関数では『C5=D5』というのが、セルC5の内容とセルD5の内容が一致しているかとういう判定です。
つまり、=(イコール)が『一致しているか?』という意味になります。
なので、C5とD5が一致していたら(真)『一致』をIF関数のE列に表示し、一致していなかったら(偽)『一致していない』を表示します。
№は同じ『文字』が入力されているので、『一致』を表示。
同様に№2も『一致』、№3は入力内容が異なるので『一致しない』
最後は、どちらも未入力なので『一致』となります。
判定結果がTRUE、FALSEでいいのであればIF関数は不要
ここまでの判定では全てIF関数を使ってきました。
解説してきたように、IF関数は判定の結果により表示させる文字列を指定することができます。
なので、IF関数を使って『一致している』とか『文字』を表示させることで、判定結果をよりわかりやすくできるメリットがあります。
でも、判定結果がTRUE(真)かFALSE(偽)だけでいいのであれば、なにもIF関数を使う必要もなく、もっとシンプルに判定式を書くことができます。
IF関数なしで『何か入力されていたら』を判定
ここもわかりやすく例で解説します。
先に紹介したように、『何か入力されていたら』という判定です。
IF関数を使う場合は、『=IF(C5<>””, “何か入っている”, “何もなし”)』と書きました。
でも、IF関数を使わないと『=C5<>””』と書けます。
かなりシンプルですよね^^
『=IF(C5<>””, “何か入っている”, “何もなし”)』の判定式をそのまま書いているだけです。
これで、『何か入力されている』場合は、『TRUE(真)』が表示され、『何も入力されていない』場合は、『FALSE(偽)』が表示されます。
№2~№4までも同様です(№3は空白があるのでTRUEとなっている)
IF関数なしで『セルの内容が一致していたら』を判定
こちらも、IF関数を使わないとシンプルになります。
IF関数の場合だと『=IF(C5=D5, “一致”, “一致しない”)』でしたが、IF関数なしだと『=C5=D5』と書けます。
判定の結果により何か表示をしなくてもいい場合は、IF関数なしの方が判定式がシンプルになるので、こちらを使うべきですね。
文字や値が一致しない場合の原因と対策
文字や数値が同じはずなのに、比較してみると『一致しない』という結果になる場合があります。
原因は、文字の場合は空白文字や制御コードが含まれていたり、数値の場合は文字列になっていたりという場合です。
対策としては、空白文字や制御コードを取り除くこと。
数値の場合は、文字列から元の数値に戻してあげることです。
一致しない原因と対策については、次の記事で詳しく書いているので、こちらを参考にしてください。
『何か入力されているセル』や『空白(未入力)のセル』のカウント(個数)を知りたい場合は、次の記事のCOUNTA関数、COUNTBLANK関数が簡単に使えます。