
#21 分かりやすい関数を書くコツ
こんにちは。みっちーです。
このnoteは1回3分で読めるExcel解説本です。
すべて無料で読めます。
テーマはこちらで決めるので、
Excelを広範囲に学びたい人におすすめです。


前回はAND関数とOR関数を解説しました。
その中で紹介した関数の1つ。
③IF(AND(注文="パスタ",OR(注文="コーヒー",注文="紅茶"),1,000円)
IF関数の中にAND関数があり、その中にOR関数が入っています。このような書き方を関数の入れ子(関数のネスト)と呼びます。
さて、この入れ子ですが、意識しないと読みづらい関数になります。
前回の喫茶店で考えます。
①パスタ 800円
②コーヒー 300円
③パスタ&コーヒーセット 1,000円
これを1文で表現すると、
=IF(AND(注文="パスタ",注文="コーヒー"),1,000円,IF(注文="パスタ", 800円),IF(注文="コーヒー",300円),注文なし)
長くて、読みづらいですね。
改良します。
私なら、注文を「フード」と「ドリンク」に分けます。
①IF(フード="パスタ",800円)
②IF(ドリンク="コーヒー",300円)
そして、両方に注文があるとセット料金なので、
③IF(①+②=1100円,1000円,①+②)
合計金額からセット料金の有無を決定します。
変更前
=IF(AND(注文="パスタ",注文="コーヒー"),1,000円,IF(注文="パスタ", 800円),IF(注文="コーヒー",300円),注文なし)
変更後
①IF(フード="パスタ",800円)
②IF(ドリンク="コーヒー",300円)
③IF(①+②=1100円,1000円)
すっきりと、分かりやすくなりました。
分かりやすい関数を書くポイントは、関数を分割することです。
関数を分割すると、1つ関数が短くなります。
関数が短くなると、条件が単純になり分かりやすくなるのです。
前回同様、紅茶の注文が増えたケースを考えてみます。
①パスタ 800円
②コーヒー 300円
③紅茶 300円
④パスタ&コーヒーセット 1,000円
⑤パスタ&紅茶セット 1,000円
①IF(フード="パスタ",800円)
②IF(OR(ドリンク="コーヒー",ドリンク="紅茶"),300円)
③IF(①+②=1100円,1000円)
ね、かんたんでしょ。
変更点はOR(ドリンク="コーヒー",ドリンク="紅茶")だけです。
次の関数に、紅茶の注文を追加してみてください。
=IF(AND(注文="パスタ",注文="コーヒー"),1,000円,IF(注文="パスタ", 800円),IF(注文="コーヒー",300円),注文なし)
・・・考えたくありませんね(笑)
まとめます。
・関数は1文が長くなればなるほど、分かりづらい
・1文が長い関数は、機能拡張が難しい。
・1文を短くするために、関数を分割する。
・短い関数は分かりやすく、機能拡張がしやすくなる。
今日はここまで。
参考になった方、次回も楽しみと思われた方は、
『スキ』と『フォロー』してくれるとうれしいです。
最後までお読みいただき、ありがとうございました😊✨
アンケートのお願い
配信の質を上げるため、アンケートにご協力ください。
2~3分で終わります。