●今回の関数は?
IFs 関数
●どんな時に使う?
ある条件を判断して、それが正しい(真)であるか、誤り(偽)であるかによって、関数の値を選択するのが、IF関数でした。
詳しくは、Excel : 便利な関数 If関数 から始まる IF関数シリーズをご覧くださいね。
しかし、条件を判断するシチュエーションは、単純ものも確かにありますが、IF関数を何重にも使わなければならないシチュエーションもあります。
先日、私がそのようなシチュエーションに遭遇し、IF関数で何とか乗り切ろうと思いました。
そして、
=IF(<条件1>, IF(<条件2>, IF(<条件3>, IF(<条件4>, <条件4が真の時の処理>,<条件4が偽の時の処理>), <条件3が偽の時の処理>), <条件2が偽の時の処理>), <条件1が偽の時の処理>)
とか入力し、 Excel が無情にも、循環参照があります・・・とかエラーメッセージを表示しました。
そこで、何重にも重なったIF関数を眺めて・・・どこに循環参照があるのだろう・・・?と
ずーっとにらめっこしていましたが、結論は 無理
場合分けが多すぎる・・・と言うことで断念しました。
しかし、再度構築するには、心が折れていました。
だって、もう一度入力して、エラーが出たら、パソコンを壊しちゃってるだろうと思いましたから。
そこで、IFs関数を使いたいって思いました。
しかし、私の使用している Excel は 2013 だったので、IFs関数が使えなかったのでした。
そこで、職権乱用してExcel 2013のライセンスと他のPCの Excel 2019 のライセンスを交換し、Excel 2019 を使用できるようにしました。
そして、IFs関数を使用して入力したのがこれ
実際に入力した Excel シートの画面コピーです。
図中で示しているのが、セルの中に入力して IFs関数式です。
これは、どう考えても、IF関数で入力することは無理でしょ
これは当社の臨床検査項目マスターで、項目コード体系を変更しようとしていて、新体系で問題となるレコードを抽出し、どのように修正すればよいかをわかりやすくするために、IF関数で作ろうとしていたんですが、挫折しました。
これが、IFs関数を使うと、上図例ではごちゃごちゃと長たらしい式になっていますが、読もうと思えば読めます
IF関数ではもちろんこれより短い段階で挫折しました。
IFs関数を送り出してくれた Microsoft さんに感謝感激です!
●注意すべき点は?
とっても便利な IFs関数ですが、注意点はありますね
例えば、A1セルに比較したい値が入っているとして、
=IFs ( A1 = 100, "素晴らしい", A1 > 80, "よく頑張りました", A1 > 60, "なかなか", A1 > 40, "もうひと頑張り", true, "あれまぁ")
ってした場合には、A1 セルの値によって思惑通りの値を IFs関数は返してくれますが、
=IFs ( A1 = 100, "素晴らしい", true, "あれまぁ", A1 > 80, "よく頑張りました", A1 > 60, "なかなか", A1 > 40, "もうひと頑張り")
ってした場合は、100以外では、すべて"あれまぁ"ってことになります。
これは、IFs関数が、左から順に式を評価し、その式が真 (True) になったり、隣の結果を返す・・・って仕様だからです。
よって、真になる条件式が見つかった段階で、それ以降の条件式は見向きもされません。
なので、先ほどの例では、2個目の条件式が True (いついかなる時でも真)なので、そこで"まぁまぁ"が選ばれて、その後の条件式は全く評価されなかったわけです。
この点は、気を付けておかないと、
ってことになりかねません。
そして、この状態になると、思い込みの方が強くて、
きっと Excel のバグだーって、わけのわからない考えに陥っちゃいます
バグ:プログラムのミスによる動作不良など
しかし、上記注意点に気を付けていると、これほど便利な関数は今までなかったのではと思えるほどです
ちなみに、多くのプログラミング言語で、 Select Case 文が導入されていますが、 IFs 関数は、この Select Case 文の考え方そのものです。
まぁ、難しく考えないで、困ったときは便利な関数をつかいましょー
そだ!
他の関数も使ってみてほしいので、 このシリーズの目次を・・・
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image