« Excel2010で、よく使う連続データを登録する。 | トップページ | IF関数で、あいまいな条件(……を含む)の処理を行う。 »

IF関数をネスト(入れ子)するときの考え方

この記事は自分用の覚書です。

■IF関数の書式 ( Excel ヘルプ ) より
IF(論理式, [真の場合], [偽の場合])

IF 関数は、指定された条件を評価した結果が TRUE の場合はある値を返し、評価した結果が FALSE の場合は別の値を返します。

論理式: 必ず指定します。真または偽のどちらかに評価できる値または式を指定します。

真の場合: 省略可能です。論理式引数が TRUE に評価された場合に返す値を指定します。

偽の場合: 省略可能です。論理式引数が FALSE に評価された場合に返す値を指定します。


■IF関数をネストする(入れ子にする)ときの考え方(論理式が3つの場合)

=IF(n1,X1,IF(n2,X2,IF(n3,X3,X4)))

IF(n1,X1,
論理式n1が「真」(満たされる)か、「偽」(満たされない)かを判定する。「真」の場合はX1を実行(結果として返す)。

IF(n2,X2,
n1が「偽」の場合は、論理式n2の真偽判定を行う。n2が「真」の場合はX2を実行する。

IF(n3,X3,
n2が「偽」の場合は、論理式n3の真偽判定を行う。n3が「真」の場合はX3を実行する。

X4)
n3が「偽」の場合は、X4を実行する。
「n3が偽になる」場合は、論理式n1,n2,n3のいずれもが「偽」であるということ。つまり、「論理式n1,n2,n3のどれでもない。それら以外」という意味。

))
関数名(
で始める式は、
)
で閉じなければならない。 IF(n3,X3,X4) より前で ) が無いのは、 IF(n1,X1 と IF(n2,X2 の2つ。これらを閉じるためには同じ数の ) が必要なので、最後に2つ付ける。

ネストが多くなってくると式が理解しづらくなってくるので、ネストさせる個数は考慮が必要。組織のなかでは自分以外の人が見て理解しやすいようにしておく次にファイルを見る人が、自分よりわかっている人だとは限らない。
条件が多く、IF関数をネストさせると読み取りにくくなる時には、IF関数以外のやり方を考えるべき。
たとえば、 Excel ヘルプで IF関数を探すと、13個の条件をLOOKUP関数で処理するやり方が載っている。あるいは、1つの関数だけで処理することにこだわらない。作業セルを設けたりするなど、とにかく「次にファイルを見る人がわかりやすい。自分がいなくなっても他の人が迷わない」作り方を心がける。


■IF関数をネストさせるときは [偽の場合] の部分に IF(論理式, で始まる式を入れる。

=IF(A2="法人",IF(ISBLANK(C2),"",C2),IF(A2="個人",IF(ISBLANK(D2),"",D2),IF(ISBLANK(A2),"","")))

IF(A2="法人",
論理式「A2セルの値が "法人" である」が、「真」か「偽」かを判定する。
「真」の場合は、
IF(ISBLANK(C2),"",C2),
を実行する。

論理式「A2セルの値が "法人" である」が「偽」の場合は、

IF(A2="個人",
論理式「A2セルの値が "個人" である」の真偽判定を行う。
「真」の場合は、
IF(ISBLANK(D2),"",D2),
を実行する。

「偽」の場合は、

IF(ISBLANK(A2),
「A2が空白セルであるかのテスト」を実施し、その真偽を判定する。

"",
「真」(A2セルが空白である)の場合は、上記の =IF(A2="法人", から始まる式が入っているセルを空白にする。

"")
「偽」である場合も、同じセルを空白にする。
IF(ISBLANK(A2),"","") の式を書いておくことによって、A2セルが「"法人" あるいは "個人" 以外の文字が入っている場合や、空白の場合」に FALSE のエラー表示がされることを防いでいる。

))
関数名(
で始める式は、
)
で閉じなければならない。 IF(ISBLANK(A2),"","") より前で、閉じる ) が無いのは、
IF(A2="法人",

IF(A2="個人",
の2つ。これらを閉じるために ) を最後に2つ付ける。

「A2セルが空白セルであるかのテスト」が「偽」である。とは、
「A2セルの値が法人でもなく、個人でもなく、空白でもない」ということ。

つまり、いずれも「偽」である。どれもが満たされない。それら以外の場合という意味。

( Windows 8 Pro 64ビット + Excel2010 )

|

« Excel2010で、よく使う連続データを登録する。 | トップページ | IF関数で、あいまいな条件(……を含む)の処理を行う。 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック


この記事へのトラックバック一覧です: IF関数をネスト(入れ子)するときの考え方:

« Excel2010で、よく使う連続データを登録する。 | トップページ | IF関数で、あいまいな条件(……を含む)の処理を行う。 »