【Excel実務家が解説】IF関数 使い方を徹底マスター!経理・営業で役立つ実践テクニック
「この膨大なデータの中から、特定の条件を満たすものだけを自動で振り分けられないかな…」「手作業での判定ミスをなくして、もっとスピーディーに集計を終わらせたい!」——日々の業務でそう感じたことはありませんか? Excelを毎日使う筆者の経験では、特に経理部門の仕訳チェックや、営業管理での目標達成度判定など、条件に基づいて処理を分岐させる場面は数え切れないほど多く発生します。この記事では、そんな実務の悩みを解決する「IF関数 使い方」を、基本から応用、そして他のExcel解説サイトには載っていない「プロのコツ」まで、徹底的に解説します。読み終える頃には、あなたのExcelスキルが一段階上がり、業務効率が劇的に向上していることでしょう。
IF関数とは?実務での役割
IF関数は、Excelにおける「もし~ならば、こうする。そうでなければ、別のことをする」という論理的な判断を自動化する強力な機能です。単なる数値計算の枠を超え、データに「意味」を持たせ、業務フローそのものを効率化します。実務でよく見かけるのは、このIF関数を使いこなすことで、レポート作成時間が半分以下になったり、手入力によるミスがゼロになったりするケースです。
ポイント: IF関数は「条件」「真の場合」「偽の場合」の3つの引数で構成され、ロジカルな思考をExcel上で再現します。
IF関数の基本構文と引数
IF関数の書式は非常にシンプルです。
=IF(論理式, 真の場合, 偽の場合)
- 論理式: 判定したい条件を指定します。例えば「A1セルが100より大きいか?」のように、結果がTRUE(真)かFALSE(偽)になる式を記述します。
- 真の場合: 論理式がTRUE(真)だった場合に表示したい値や実行したい計算式です。
- 偽の場合:: 論理式がFALSE(偽)だった場合に表示したい値や実行したい計算式です。
例えば、営業部の「月間売上実績」が「月間売上目標」を超えた場合に「達成」、そうでなければ「未達成」と自動表示したいとします。セルB2に目標、セルC2に実績が入っているとして、D2セルに以下のように入力します。
=IF(C2>=B2, "達成", "未達成")これで、商品「A-001」の営業担当者「田中」さんの実績が目標を超えていれば「達成」、そうでなければ「未達成」と瞬時に表示されます。このように、具体的なビジネスシナリオに適用することで、IF関数の真価が発揮されます。
注意点: 文字列を返す場合は、必ずダブルクォーテーション「” “」で囲むのを忘れないでください。数値やセル参照の場合は不要です。
基本的なIF関数 使い方は、この構造を理解し、実際に手を動かすことから始まります。
簡単な実例で学ぶ「IF関数 使い方」
ここでは、もう少し具体的な実務例を通じてIF関数の初歩的な使い方をマスターしましょう。例えば、顧客リストにおいて「過去の購入金額」に応じて顧客ランクを自動で判定したいケースです。
- 顧客名がA列、購入金額がB列にあり、C列にランクを表示するとします。
- C2セルを選択し、以下の数式を入力します。
=IF(B2>=50000, "VIP顧客", "一般顧客") - Enterキーを押すと、B2セルの購入金額に応じて「VIP顧客」または「一般顧客」が表示されます。
- C2セルの右下にあるフィルハンドルをダブルクリックするか、下方向にドラッグして、他の顧客にも数式をコピーします。
これで、購入金額が50,000円以上の顧客は自動的に「VIP顧客」と分類され、それ以外は「一般顧客」となります。このように、一つ条件を設定するだけで、大量のデータを瞬時に分類できるのがIF関数の強みです。
中級:IF関数の応用で複雑な実務要件に対応する
AND/OR関数で複数条件を結合(勤怠管理の例)
実務では、「〇〇かつ△△の場合」や「〇〇または△△の場合」といった、複数の条件を同時に判定したいことが頻繁にあります。そのような場合にIF関数とAND関数、またはOR関数を組み合わせます。
AND関数との組み合わせ
AND関数は、指定したすべての条件が真の場合にのみ真(TRUE)を返します。一つでも偽の条件があれば偽(FALSE)を返します。
例えば、勤怠管理表で「出勤」かつ「定時内」の勤務だけを「正常勤務」と判定したい場合です。
=IF(AND(B2="出勤", C2="定時内"), "正常勤務", "要確認")この数式では、B列が「出勤」で、かつC列が「定時内」の両方を満たした時にのみ「正常勤務」と表示されます。どちらか一方でも満たさない場合は「要確認」となり、担当者が詳細を確認すべき項目としてマークできます。
OR関数との組み合わせ
OR関数は、指定した条件のうち一つでも真の場合に真(TRUE)を返します。すべての条件が偽の場合にのみ偽(FALSE)を返します。
例えば、勤怠管理で「遅刻」または「早退」のいずれかに該当した場合に「要面談」と判定したい場合です。
=IF(OR(B2="遅刻", B2="早退"), "要面談", "問題なし")この数式は、B列に「遅刻」または「早退」のどちらかが入力されていれば「要面談」となり、人事担当者がアラートを受け取ることができます。両方とも該当しない場合は「問題なし」です。
ポイント: AND/OR関数を使うことで、IF関数の論理式部分が強力になり、より多角的な条件判定が可能になります。
IF関数のネストで多分岐(経費精算の承認フローの例)
「もし条件1ならばA、そうでなくもし条件2ならばB、それ以外はC」のように、3つ以上の結果に分岐させたい場合、IF関数の中にさらにIF関数を入れる「ネスト(入れ子)」を使います。研修で教えていると、ネストが深くなるにつれて論理が破綻するケースをよく見かけます。
例えば、経理部門での経費精算において、申請金額に応じて承認フローを自動で分岐させるケースを考えましょう。
- A列に申請者名、B列に申請金額が入っているとします。C列に承認者を表示させます。
- C2セルに以下の数式を入力します。
=IF(B2>=50000, "部長承認", IF(B2>=10000, "課長承認", "主任承認"))
この数式では、まず申請金額が50,000円以上の場合は「部長承認」となります。そうでなければ次のIF関数に移り、10,000円以上の場合は「課長承認」となります。それにも該当しない、つまり10,000円未満の場合は「主任承認」となるわけです。
このように、IF関数をネストすることで、段階的な条件分岐を柔軟に表現できます。ただし、ネストしすぎると数式が長くなり、後からの修正やデバッグが難しくなるため注意が必要です。
上級:IF関数と関連機能の組み合わせで業務を最適化
IFERROR関数でエラーを美しく処理(予算実績比較の例)
Excelの数式では、予期せぬエラー値(#DIV/0!、#VALUE!など)が表示されることがあります。特に、実績がまだない項目などで割算を行うと、#DIV/0!エラーが発生しがちです。これをIFERROR関数で抑制し、シートの見た目をきれいに保ちましょう。
=IFERROR(数式, エラーの場合に表示する値)
例えば、予算実績比較表で「実績/予算」を計算し、予算がゼロの場合にエラーが出ないようにしたい場合です。
=IFERROR(C2/B2, "N/A")上記は、C2(実績)をB2(予算)で割る数式で、もしB2が0だったり、計算できない値が入っていたりする場合でも、「N/A」(Not Applicable)と表示され、レポートが見やすくなります。IF関数でもエラー処理は可能ですが、IFERROR関数を使う方が格段にシンプルに記述できます。
IFS関数による多分岐の簡素化(Excel 2019以降、Microsoft 365)
前述のIF関数のネストは強力ですが、条件が増えるごとに数式が長大になりがちです。Excel 2019以降およびMicrosoft 365では、IFS関数を使うことで、この多分岐をより簡潔に記述できます。
=IFS(条件1, 真の場合1, 条件2, 真の場合2, ..., [条件n, 真の場合n])
先ほどの経費精算の承認フローの例をIFS関数で記述してみましょう。
=IFS(B2>=50000, "部長承認", B2>=10000, "課長承認", TRUE, "主任承認")IFS関数では、条件とそれに対応する結果をペアで記述していきます。最後のTRUEは「上記のどの条件にも当てはまらない場合」を意味し、ネストIFの最後の「偽の場合」に相当します。これにより、ネストIFよりもはるかに読みやすく、管理しやすい数式になります。IFS関数については、Microsoft公式サイトでも詳細な情報が提供されています。Microsoft公式サイト: IFS関数
VLOOKUP/XLOOKUPとの連携(商品マスタ参照の例)
IF関数は単体でも強力ですが、VLOOKUP関数やXLOOKUP関数と組み合わせることで、さらに複雑な実務要件に対応できます。
例えば、商品コードに基づいて参照する価格表を、通常価格表とキャンペーン価格表で動的に切り替えたい場合です。
=IF(D2="キャンペーン", VLOOKUP(A2, キャンペーン価格表!$A:$B, 2, FALSE), VLOOKUP(A2, 通常価格表!$A:$B, 2, FALSE))この例では、D2セルに「キャンペーン」と入力されていればキャンペーン価格表から、そうでなければ通常価格表からA2の商品コードに対応する価格を検索して表示します。これにより、価格改定やキャンペーン展開時に柔軟なデータ参照が可能となり、手作業での参照ミスを防ぐことができます。VLOOKUP関数について不明な点があれば、こちらもMicrosoft公式サイトが参考になります。Microsoft公式サイト: VLOOKUP関数
これらの組み合わせは、より高度なIF関数 使い方の典型例と言えるでしょう。
実例集:現場で役立つIF関数活用術
在庫管理での自動発注点チェック
「商品の在庫が少なくなったら自動でアラートを出してほしい」——これは多くの企業で求められる機能です。IF関数とAND関数、ネストを組み合わせることで、自動的な発注点チェックシステムを構築できます。
商品名「B-005」の在庫数がA列にあり、発注点(100個)と緊急発注点(50個)が設定されているとします。
=IF(A2<=50, "緊急発注!", IF(A2<=100, "要発注", "在庫充分"))この数式により、在庫が50個以下なら「緊急発注!」、100個以下なら「要発注」、それ以上なら「在庫充分」と自動で表示され、在庫担当者は一目で発注が必要な商品を把握できます。
請求書発行日の自動計算
経理や営業管理で頻繁に発生する請求書の管理。IF関数と日付関数を組み合わせれば、請求書の発行日や支払い期日を自動計算することも可能です。
例えば、「月末締め翌月10日払い」という条件で、締め日(A列)を元に支払い期日(B列)を自動計算したい場合。
=IF(DAY(A2)=DAY(EOMONTH(A2,0)), EDATE(A2,1)-DAY(EDATE(A2,1))+10, EDATE(EOMONTH(A2,0),1)-DAY(EDATE(EOMONTH(A2,0),1))+10)この例は少し複雑ですが、EOMONTH関数で月末日を特定し、EDATE関数で翌月にずらすことで、締め日にかかわらず常に翌月10日を支払い期日として表示できます。初心者がつまずきやすいポイントとして、日付の計算は数値と異なり、「月末」や「翌月」の概念を関数で正確に表現する点があります。実務でよく見かけるのは、この日付設定を誤ってしまい、支払い遅延や集計のずれが発生するケースです。
営業実績レポートの進捗状況表示
営業部の週次レポートなどで、各担当者の進捗状況を視覚的に分かりやすく表示するのもIF関数の得意分野です。
月間目標達成率がA列にあるとして、進捗状況(B列)を以下のように判定します。
=IF(A2<0.5, "遅延", IF(A2<0.8, "順調", "好調"))達成率が50%未満なら「遅延」、50%以上80%未満なら「順調」、80%以上なら「好調」と表示され、営業マネージャーはメンバーの状況を即座に把握し、適切なフォローを入れることができます。
プロのコツ:IF関数を使いこなす時短テクニック
ここからは、筆者の経験から、他のExcel解説サイトではなかなか見かけない、IF関数をよりスマートに使いこなすための独自のTipsをご紹介します。これを知っているだけで、あなたの作業効率は格段に向上するはずです。
「True/False」は省略できる!
IF関数の「真の場合」や「偽の場合」で、結果が数値の0や1、あるいは空欄("")である場合、実は引数を省略してもExcelが自動で判断してくれます。
例えば、「A1が100より大きいなら『条件達成』、そうでなければ空欄」としたい場合、通常は以下のようになります。
=IF(A1>100, "条件達成", "")これを、""を省略して書くことも可能です(ただし、Falseがデフォルトで0として扱われる場合がありますので、完全な互換性が必要な場合は明示することをおすすめします)。
=IF(A1>100, "条件達成")※厳密には、偽の場合を省略するとFALSEが返されますが、特定の条件(例えば数値の0/1判定など)ではこの挙動を逆手に取ることができます。通常は明示的に""と記述する方が安全です。
論理式のデバッグはF9キーで!
複雑なIF関数、特にAND/OR関数やネストを多用した数式では、「なぜこの条件がTrueにならないんだ?」と悩むことがあります。そんな時は、数式バーでデバッグしたい「論理式」の部分だけを選択し、キーボードのF9キーを押してみてください。
選択した論理式がExcelによって評価され、その部分の計算結果(TRUEまたはFALSE)が数式バーに一時的に表示されます。これで、どこで論理が期待通りに動いていないのかを特定しやすくなります。デバッグに非常に役立つ時短テクニックです。
配列数式と組み合わせる上級技
IF関数は、単一のセルだけでなく、配列数式(Ctrl+Shift+Enterで入力)と組み合わせることで、指定した範囲全体に対して一度に条件判定を行うことができます。例えば、特定の条件に合致するデータのみを合計したり、カウントしたりする際に威力を発揮します。
例: 「営業部」の売上(B列)だけを合計する(A列に部署名がある場合)
{=SUM(IF(A2:A100="営業部", B2:B100, 0))}※{}はCtrl+Shift+Enterで入力した際に自動で付与されます。
この数式は、「A2からA100の範囲で『営業部』と書かれている行のB列の数値を合計する」という意味になります。筆者の経験上、この技を知っていると、周りから「Excelの達人」と一目置かれ、集計作業の依頼が集中するようになるでしょう。
まとめ:IF関数で業務効率を劇的に向上させよう
IF関数は、Excelを実務で使う上で避けては通れない、最も基本的でありながら奥深い関数の一つです。単純な条件分岐から、AND/OR関数やネストによる多段階判定、さらにはIFS関数やVLOOKUP/XLOOKUPとの組み合わせ、そして配列数式への応用まで、その活用範囲は無限大です。
この記事を通じて、IF関数 使い方の基本をマスターし、さらに一歩進んだ実務テクニックを学ぶことで、あなたのExcel業務は劇的に効率化されるはずです。手作業でのミスを減らし、判断を自動化し、より戦略的な業務に時間を割くために、ぜひ今日からIF関数を積極的に活用してみてください。一度その便利さを知れば、もう手放せなくなることでしょう。


コメント