関数IFSを使って「数多くの条件分岐」を行いたい場合もあるだろう。この場合、引数の数も多くなるため、記述ミスを犯しやすくなる。そこで、関数を途中で改行してプログラムのように記述する方法を紹介していこう。1行で書くと気が遠くなるような関数であっても、改行することでスッキリとした見た目に仕上げられる。
関数IFSの記述が複雑になる例
関数IFSは、最大で127組まで「条件と処理」を記述できる仕様になっている。とはいえ、「条件と処理」を何組も連続して記述していくと関数の見通しが悪くなり、記述ミスが発生しすくなる。また、後から関数を修正するときも「どこを修正すればよいか?」を見つけるだけで大変な作業になってしまう。
そこで今回は、関数を途中で改行して見やすく記述する方法を紹介していこう。
今回も体脂肪率の測定結果を「低」、「標準」、「高」の3つにグループ分けする場合を例に話を進めていく。前回の連載と異なる点は「男性」だけでなく「女性」のデータも記録されていることだ。
体脂肪率の判断基準は諸説あるが、ここでは以下の基準に従ってデータを分類していくことにする。
【男性の体脂肪率】
低:15%未満
標準:15%以上、25%未満
高:25%以上
【女性の体脂肪率】
低:25%未満
標準:25%以上、35%未満
高:35%以上
このグループ分けを関数IFSで実現するには、「性別」と「体脂肪率」を基準に以下のような手順で6つの条件分岐を行う必要がある。
(1)「男」かつ「15未満」の場合 ・・・・ 低
(2)「男」かつ「25未満」の場合 ・・・・ 標準
(3)「男」かつ「25以上」の場合 ・・・・ 高
(4)「女」かつ「25未満」の場合 ・・・・ 低
(5)「女」かつ「35未満」の場合 ・・・・ 標準
(6)「女」かつ「35以上」の場合 ・・・・ 高
第47回の連載で紹介したように、「かつ」の条件は関数ANDで記述できる。「性別」がD3セル、「体脂肪率」がE3セルに記録されていた場合、(1)の「条件」と「処理」は、
AND(D3="男",E3<15),"低"
と記述できる。とはいえ、このような「条件」と「処理」をダラダラと続けて記述していくのは少し気が遠くなる。そこで、もっとスマートに、わかりやすく関数IFSを記述していく方法を紹介しよう。