EXCELで世界のナベアツ その3
2008年10月21日 - EXCEL関数のコト 投稿者 白取です
「3がつく数字かどうかの判定方法」について解説します。今回から関数の引数に別の関数の戻り値を使うようになります。
このように、関数を他の関数の引数として使用することを「ネスト」と言います。関数をネストする事を覚えると、飛躍的にできるコトが増えるのでマスターして欲しいですね。
では、まずFIND関数を使って3がつくかどうか判定してみます。
FIND関数は条件にあてはまる文字の位置を返す関数で、D4に=FIND("3",A4)と入力し、下方向へコピーして行きます。

引数の検索文字列は3を、対象はA4を指定にすると
・A4に3が見つかった場合は何文字目か
・見つからなかった場合は#VALUE!というエラー
が戻り値となります。
D6を見ると戻り値は1になっていますね。A6の値の1文字目に3が見つかったという意味になります。
3がつくかどうかの判定は、FIND関数を使えば簡単なのですが、曲者なのが#VALUE!というエラーの値。エラーままでは、それ以降全ての計算結果が全てエラーとなってしまうため、適切に計算できるように対応する必要があります。
エラーかどうかの判定にはISERR関数を使います。(ISERROR関数でもOK。)
E4に=ISERR(D4)と入力し、下方向へコピーして行きます。

・#VALUE!というエラーの場合はTRUE(真)
・数値(何文字目か)の場合はFALSE(偽)
が戻り値となっていますね。これを踏まえて、一つの計算式にまとめてみます。

D4に、=ISERR(FIND("3",A4))と入力し下方向へコピーして行きます。
FIND("3",A4)の結果が#VALUE!の場合(3が見つからなかった場合)TRUEが戻り値となります。見つかった場合は、エラー値ではないのでFALSEが戻り値になります。
FIND関数の結果をISERR関数を使いTRUEかFALSEとする事によって、エラーによる計算不能にならないようにしている訳です。
最後にもう一度3がつくかどうかの判定の部分を整理してみます。
=ISERR(FIND("3",A4))の戻り値がTRUEの場合
→FIND("3",A4)がエラーである。
→A4に3が見つからなかった。
→3がつかない数である。
=ISERR(FIND("3",A4))の戻り値がFLASEの場合
→FIND("3",A4)がエラーではない。
→A4に3が見つかった。
→3がつく数である。
という事になります。
次回はこれまでの記事を踏まえて、「3の倍数と3がつく数字の場合」というのを1つの計算式で判定してみます。





