8レベル以上ネストさせてIF関数を使う
 EXCELでは、関数のネスト(関数の中に関数を利用する)レベルは、
7レベルまでが限界です。従って、IF関数で条件に応じて異なる結果
を返す数式を作成する場合にも、8個以上の場合分けはできない、とい
うことになります。

 このような場合には場合分けの条件とその条件における結果をテーブル
として作成し、VLOOKUP関数などで検索する、という方法を使ってみてください。

 仮に7レベル以内に収まる条件であっても深くネストした関数は理解しにくく、
メンテナンスが容易でない、という短所もあります。

例えば、数値を決まった基準で幾つかの階級に分類したい場合、

=IF(A2<100,"0-99",IF(A2<200,"100-199",IF(A2<300,"200-299",
IF(A2<400,"300-399",IF(A2<500,"400-499",IF(A2<600,"500-599",
IF(A2<700,"600-699",IF(A2<800,"700-799"))))))))

このような数式は、一見しただけではなかなか理解できません。

一方、条件のテーブルを利用した方法では、数式の理解は容易です。

=VLOOKUP(A2,$E$2:$F$12,2)

また、条件の設定値が変更された場合においても、変更するのは条件のテーブル
の方だけでよい、ということで、メンテナンスもしやすくなります。

Excel2000、Excel97



戻る


Excel Word Access VBA! モーグ