第23回:IF関数の中にIFを入れる?「ネスト(入れ子)」を攻略して複雑な手数料計算に挑む [AI]

こんにちは!大手企業の経理担当兼、Excel講師です。

Level 4までの応用編、本当にお疲れ様でした。
今日からは、いよいよLevel 5(達人編)に突入します。

これまでは「一つの条件」で判定するIF関数を使ってきましたが、実務ではもっと複雑なルールが存在します。

例えば、経理泣かせの「銀行振込手数料」

  • 「自社と同じ銀行なら無料」
  • 「他行宛てでも、3万円未満なら〇〇円」
  • 「他行宛てで、3万円以上なら××円」

このように、「もしAなら…でもBの場合は…そうでなければ…」と条件が何重にも重なる場合、どう数式を書けばいいのでしょうか?
第23回のテーマは、IF関数の中にIF関数を入れるテクニック「ネスト(入れ子)」と、それを劇的に簡単にする新しい関数「IFS(イフス)」です。

これが書けるようになれば、複雑な社内規定も、給与計算の税率判定も、すべてExcelに自動判断させることができるようになります。

経理Excel
経理Excel

なぜ経理でこのスキルが必要なのか

「条件が複雑なら、フィルターをかけて何回かに分けて計算すればいい」と思っていませんか?

私も新人の頃はそうしていました。
まず「自行宛て」でフィルターして「0」を入力。次に「他行」でフィルターし、さらに金額で並べ替えて「3万円未満」に手数料を入力…。

しかし、この方法は「手戻り」に非常に弱いです。
「ごめん、この振込、金額が変更になった!」と言われたら? またフィルターをかけ直して手数料を修正しなければなりません。

「金額や銀行名を変えたら、手数料も勝手に変わる」
この仕組みを作っておくことが、締日(しめび)の忙しい経理担当者を救います。
複雑なロジックを数式に落とし込む力は、経理としての「論理的思考力」の証明でもあります。

【実践】今回のサンプル成果物

今回は、典型的な「振込手数料の自動計算」に挑戦します。
条件は以下の通りとします。

  1. 自行(あおぞら銀行)宛て:常に 0円
  2. 他行宛て
    • 振込額が 30,000円未満 なら 220円
    • 振込額が 30,000円以上 なら 440円

練習用サンプルデータ

以下の表をコピーして、ExcelのA1セルに貼り付けてください。

振込先銀行振込金額手数料(ネスト)手数料(IFS)
あおぞら銀行100000(数式1)(数式2)
みどり銀行15000
みどり銀行50000
あおぞら銀行5000
きいろ銀行30000

※自社は「あおぞら銀行」を使っている想定です。

手順解説:頭の中のフローチャートを数式にする

いきなり数式を書き始めると混乱します。
まずは日本語でロジックを整理しましょう。

  • 第一関門:銀行は「あおぞら銀行」か?
    • YES → 0円
    • NO → 第二関門へ:金額は3万未満か?
      • YES → 220円
      • NO → 440円

Step 1. IF関数のネスト(入れ子)で作る

まずは古典的な方法です。IF関数の中に、もう一つIF関数を入れます。

  1. C2セルを選択し、=IF( と入力します。
  2. 第一関門:
    銀行名が「あおぞら銀行」かどうか。
    A2="あおぞら銀行", と入力します。
  3. 真の場合(YES):
    自行宛てなので手数料は無料です。
    0, と入力します。
  4. 偽の場合(NO):
    ここがポイントです。「あおぞら銀行じゃない場合」の処理として、さらにIF関数を開始します。
    IF(B2<30000, 220, 440)
    (もし3万未満なら220、そうでなければ440)
  5. 最後に括弧を閉じますが、IFを2回使ったので、括弧も2回閉じます ))

完成した数式:
=IF(A2="あおぞら銀行", 0, IF(B2<30000, 220, 440))

これでC列を下までオートフィルしてみましょう。
みどり銀行の15,000円は220円、50,000円は440円になりましたか?

Step 2. 新関数「IFS」でスマートに書く

ネストはカッコの数が増えて読みづらいのが難点です。
Excel 2019以降(Microsoft 365含む)を使っているなら、IFS(イフス)関数が圧倒的に便利です。

構文: =IFS(条件1, 値1, 条件2, 値2, 条件3, 値3...)

前から順番に条件をチェックし、当てはまった時点で終了します。

  1. D2セルを選択し、=IFS( と入力します。
  2. 条件1と値1:
    「あおぞら銀行なら0円」
    A2="あおぞら銀行", 0,
  3. 条件2と値2:
    「(あおぞら以外で)3万未満なら220円」
    B2<30000, 220,
  4. 条件3と値3:
    「それ以外(3万以上)なら440円」
    IFSには「それ以外」という書き方がないので、条件部分に TRUE(必ず正しい)と書くのがお約束です。
    TRUE, 440
  5. 括弧を閉じてEnter。

完成した数式:
=IFS(A2="あおぞら銀行", 0, B2<30000, 220, TRUE, 440)

入れ子構造がないので、左から右へ読むだけで理解できますね!

Step 3. 複数条件(AND/OR)の補足

もし条件が「あおぞら銀行」かつ「3万円未満」のように、複数の条件を同時に満たす必要がある場合は、AND関数を使います。

例:AND(A2="あおぞら銀行", B2<30000)

これをIFの中に入れると、
=IF(AND(A2="あおぞら銀行", B2<30000), "手数料無料", "有料")
のように、複雑な条件判定も可能になります。

ベテラン経理の「ここだけの話」

IF関数のネストは、理論上は64個まで入れられますが、実務では「3階層(ネスト3回)」までにしておくのがマナーです。

それ以上深くなると、作った本人ですら解読不能な「スパゲッティ数式」になり、引継ぎを受けた後任者が泣くことになります。
もし条件が4つも5つもあるなら、無理にIFで頑張らずに、「VLOOKUP関数用の対応表(マスタ)」を別に作って参照させる方が、はるかにメンテナンスしやすくなります。

「数式は、短くシンプルに」。これがプロの美学です。

まとめ

第23回では、Level 5の入り口として複雑な条件分岐を攻略しました。

  • 条件が複数ある時は、IF関数の中にIFを入れる(ネスト)。
  • 新しいExcelなら IFS関数 を使うと読みやすい。
  • IFSの最後は TRUE を条件にして「その他すべて」を拾う。
  • 複雑すぎる条件はAND/OR関数を使うか、対応表(VLOOKUP)に逃がす。

これで、あなたのExcelはかなり「賢く」なりました。
次回は、システムからダウンロードしたデータが「使い物にならない形」だった時に役立つテクニック。
LEFT、RIGHT、MID関数などを駆使して、テキストデータを自在に切り貼りする「データ加工術」を伝授します!


📊経理のExcel 虎の巻[AI]未経験から経理職を目指す方、そして実務での効率化に悩む現役経理担当の方へ。 このページは、経理の実務現場で本当に必要なExcelスキルを、体系的に学ぶための完全ロードマップです。…
続きを読む
 zesys.net
📊経理のExcel  虎の巻[AI]


※本ブログはこの一文以外は、AIによる記載です。内容にウソが含まれている可能性がありますので、ご注意ください。写真もAIで作成しています。

是非フォローしてください

最新の情報をお伝えします

広告

迷子探偵やもやも [AI]

探偵はいつも迷子ですw

シェアする