第23回:IF関数の中にIFを入れる?「ネスト(入れ子)」を攻略して複雑な手数料計算に挑む [AI]
こんにちは!大手企業の経理担当兼、Excel講師です。
Level 4までの応用編、本当にお疲れ様でした。
今日からは、いよいよLevel 5(達人編)に突入します。
これまでは「一つの条件」で判定するIF関数を使ってきましたが、実務ではもっと複雑なルールが存在します。
例えば、経理泣かせの「銀行振込手数料」。
- 「自社と同じ銀行なら無料」
- 「他行宛てでも、3万円未満なら〇〇円」
- 「他行宛てで、3万円以上なら××円」
このように、「もしAなら…でもBの場合は…そうでなければ…」と条件が何重にも重なる場合、どう数式を書けばいいのでしょうか?
第23回のテーマは、IF関数の中にIF関数を入れるテクニック「ネスト(入れ子)」と、それを劇的に簡単にする新しい関数「IFS(イフス)」です。
これが書けるようになれば、複雑な社内規定も、給与計算の税率判定も、すべてExcelに自動判断させることができるようになります。
![第23回:IF関数の中にIFを入れる?「ネスト(入れ子)」を攻略して複雑な手数料計算に挑む [AI] 1 経理Excel](https://zesys.net/blog/wp-content/uploads/2025/11/経理Excel-300x200.png)
なぜ経理でこのスキルが必要なのか
「条件が複雑なら、フィルターをかけて何回かに分けて計算すればいい」と思っていませんか?
私も新人の頃はそうしていました。
まず「自行宛て」でフィルターして「0」を入力。次に「他行」でフィルターし、さらに金額で並べ替えて「3万円未満」に手数料を入力…。
しかし、この方法は「手戻り」に非常に弱いです。
「ごめん、この振込、金額が変更になった!」と言われたら? またフィルターをかけ直して手数料を修正しなければなりません。
「金額や銀行名を変えたら、手数料も勝手に変わる」。
この仕組みを作っておくことが、締日(しめび)の忙しい経理担当者を救います。
複雑なロジックを数式に落とし込む力は、経理としての「論理的思考力」の証明でもあります。
【実践】今回のサンプル成果物
今回は、典型的な「振込手数料の自動計算」に挑戦します。
条件は以下の通りとします。
- 自行(あおぞら銀行)宛て:常に 0円
- 他行宛て:
- 振込額が 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関数を入れます。
- C2セルを選択し、
=IF(と入力します。 - 第一関門:
銀行名が「あおぞら銀行」かどうか。A2="あおぞら銀行",と入力します。 - 真の場合(YES):
自行宛てなので手数料は無料です。0,と入力します。 - 偽の場合(NO):
ここがポイントです。「あおぞら銀行じゃない場合」の処理として、さらにIF関数を開始します。IF(B2<30000, 220, 440)
(もし3万未満なら220、そうでなければ440) - 最後に括弧を閉じますが、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...)
前から順番に条件をチェックし、当てはまった時点で終了します。
- D2セルを選択し、
=IFS(と入力します。 - 条件1と値1:
「あおぞら銀行なら0円」A2="あおぞら銀行", 0, - 条件2と値2:
「(あおぞら以外で)3万未満なら220円」B2<30000, 220, - 条件3と値3:
「それ以外(3万以上)なら440円」
IFSには「それ以外」という書き方がないので、条件部分に TRUE(必ず正しい)と書くのがお約束です。TRUE, 440 - 括弧を閉じて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関数などを駆使して、テキストデータを自在に切り貼りする「データ加工術」を伝授します!
※本ブログはこの一文以外は、AIによる記載です。内容にウソが含まれている可能性がありますので、ご注意ください。写真もAIで作成しています。
是非フォローしてください
最新の情報をお伝えします