エクセルやGoogleスプレッドシートを使った業務で、「この場合はOK、それ以外はNG」といった判断を自動化したい場面で欠かせないのがIF関数です。
IF関数を使うと、条件に応じて表示や計算結果を切り替えられ、入金管理や売上評価、見積計算などの作業を効率化できます。
本記事では、IF関数の基本的な仕組みや活用例、つまずきやすいエラーの対処法までを解説します。目次
- IF関数とは
- IF関数の基本構文
- IF関数の使い方
- IF関数の活用シーン
- 入金済み・未入金の判定を自動化する
- 売上目標の達成状況を判定する
- 割引価格を条件付きで自動計算する
- IF関数の応用
- 【AND関数】すべてを満たす
- 【OR関数】いずれかを満たす
- 【ネスト(入れ子)】複数の条件を指定する
- 【空白処理】データがない場合は「空白」を表示する
- 【IFS関数】複数の条件を簡潔に処理する
- IF関数のよくあるエラーと対処法
- 【#VALUE!】値の種類が違う・計算できない
- 【#NAME?】関数名・文字列の書き方が誤っている
- 【#REF!】参照しているセル範囲が無効になった
- 【#DIV/0!】0で割り算しようとした
- まとめ
- よくある質問
IF関数とは
IF関数とは、エクセルやスプレッドシートで使われる条件分岐の関数で、「条件に合えばこの結果、合わなければ別の結果」という判断を自動で行うものです。
数値の大小判定や空白チェック、達成・未達の判定など、日常業務で頻繁に発生する判断を数式で処理できます。
IF関数の基本構文
IF関数の基本構文は、以下のとおりです。条件式がTRUEなら2番目、FALSEなら3番目の値が表示されます。
=IF(条件式,真の場合の値,偽の場合の値)
たとえば、「=IF(B2>=60,"合格","不合格")」と入力すると、B2セルが60以上の場合に「合格」と表示されます。
IF関数の使い方
IF関数は、実務では主に3つの使い方があります。
1つ目は単一条件の判定で、合否判定や空白チェック、ゼロ除算の回避などです。たとえば、分母が0のときに計算エラーを出さないようにすることで、集計やグラフの崩れを防げます。
2つ目は、AND関数やOR関数と組み合わせた複数条件の判定です。売上や達成条件など、複数の基準を同時に確認したい場面で役立ちます。
3つ目は、IFERROR関数と併用したエラー対策で、検索結果が見つからない場合でもエラーを表示せず、任意の文字を返せます。これらを定型化して使うことで、作業効率と正確性が向上するでしょう。
IF関数の活用シーン
IF関数は、条件によって表示や計算結果を切り替えたい場面で幅広く活用できます。
入金管理や売上評価、見積書の作成など、日常業務では「この場合はこうする」という判断が数多く発生しますが、手作業では時間がかかりミスも起こりやすいです。IF関数を使うことで、こうした判断を数式として自動化でき、作業効率と正確性を高められます。
入金済み・未入金の判定を自動化する
入金管理表にIF関数を使うと、入金済みか未入金かを自動で判定でき、確認や催促の手間を減らせます。
たとえば、入金日が入力されているかどうかで判定する場合は、「=IF(D2="","未入金","入金済み")」という数式を記入します。D列に入金日があれば「入金済み」、空白なら「未入金」と表示されるため、目視確認による見落としを防げるでしょう。
さらに、入金予定日と組み合わせて「=IF(D2="",IF(C2<TODAY(),"要催促","未入金"),"入金済み")」とすれば、期限超過の取引先を自動で判別できます。未入金先だけを抽出できるため、催促業務もスムーズになります。
売上目標の達成状況を判定する
売上管理表にIF関数を使うと、実績と目標を比較して達成状況を自動で判定でき、評価業務の手間を減らせます。
基本的な使い方は「=IF(C2>=B2,"達成","未達")」のように、実績が目標以上かどうかで判定する方法です。これにより、人による判断のばらつきを防ぎ、公平な評価ができます。
さらに、達成率で段階評価したいときは「=IF(C2/B2>=1,"達成",IF(C2/B2>=0.9,"ほぼ達成","未達"))」と書くことで細かな判定も可能です。粗利率など他条件を組み合わせれば、より実務に即した評価ができ、判断ミスや認識のズレ防止につながります。
割引価格を条件付きで自動計算する
見積書や請求書にIF関数を使うと、顧客区分や購入金額に応じた割引価格を自動で計算でき、見積作成の手間と計算ミスを減らせます。
たとえば、顧客ランクで割引を分ける場合は「=IF(C2="VIP",B2*0.9,B2)」と設定します。すると、VIP顧客のみ10%割引を自動適用できます。
購入金額に応じた段階割引なら、「=IF(B2>=100000,B2*0.95,IF(B2>=50000,B2*0.97,B2))」のように設定可能です。購入金額が10万円以上なら5%割引、5万円以上10万円未満なら3%割引、5万円未満の場合は割引なしといったように、該当する割引率を自動で適用します。
割引ルールを数式化しておくと、条件に応じた金額が自動表示され、複雑な見積業務でも正確かつ効率的に処理できます。
IF関数の応用
IF関数は、複数条件を扱う応用的な使い方によって、さらに実務の幅が広がります。
AND関数やOR関数との組み合わせ、入れ子による条件分岐、空白処理やIFS関数の活用を理解することで、より複雑な判断も正確に自動化できます。
【AND関数】すべてを満たす
AND関数をIF関数と組み合わせると、複数の条件をすべて満たした場合のみ結果を表示できます。
B2セルに売上目標・C2セルに実際の売上金額・E2セルに粗利率(%を小数で入力)が入力されているケースを例とします。このとき、売上目標の達成と粗利率の基準クリアを同時に判定するには、「=IF(AND(C2>=B2,E2>=0.3),"達成","未達")」のように記述してください。C2の売上が目標以上かつ、E2の粗利率が30%以上のときだけ「達成」と表示されます。
IF関数を入れ子で書くと式が複雑になりやすいですが、AND関数を使うと判定を1ヶ所にまとめられ、修正や管理がしやすくなります。
条件は3つ以上でも指定できるため、実務の複雑な評価にも柔軟に対応可能です。
【OR関数】いずれかを満たす
OR関数をIF関数と組み合わせると、複数の条件のうち、いずれか1つでも満たした場合に結果を表示できます。
たとえば、A2セルに顧客ランク(「VIP」「ゴールド」「一般」など)が入力されている場合。VIP顧客またはゴールド顧客を対象として判定したいときは、「=IF(OR(A2="VIP",A2="ゴールド"),"対象","対象外")」のように記述します。これにより、どちらか一方の条件を満たせば自動で判定される仕組みです。
IF関数を入れ子で書くと数式が煩雑になり修正漏れの原因になりますが、OR関数を使えば判定を1ヶ所にまとめられるため管理が容易です。売上目標の達成または新規顧客数の達成など、複数の評価ルートがある実務でも柔軟に対応できます。
【ネスト(入れ子)】複数の条件を指定する
IF関数のネスト(入れ子)は、複数の条件を段階的に判定したいときに使います。基本構文は以下のとおりで、偽の場合の中にさらにIF関数を重ねる形です。
=IF(条件1,結果1,IF(条件2,結果2,結果3))
ただし、実務では三段階程度までに抑えるのが安全です。段階が増えると、条件と結果の対応関係が分かりにくくなり、修正ミスの原因になります。条件が多い場合はIFS関数を使ったり、条件ごとに改行して分けると可読性と保守性を保てます。
IFS関数については、後述の「【IFS関数】複数の条件を簡潔に処理する」をご覧ください。
IF関数は上から順に判定されるため、条件は重要度や厳しさの高いものから書くのが基本です。
【空白処理】データがない場合は「空白」を表示する
IF関数で空白を正しく扱うには、「未入力(空白)」「空文字列("")」「数値の0」の違いを理解することが重要です。
たとえば、条件を満たさない場合に結果を表示させたくないときは「=IF(A2="","",A2*1.1)」のように空白を表示させることで、不要な0の表示を防ぎ、集計やグラフの崩れを防止できます。
注意点として、「A2=""」は「未入力」と「数式による空文字列」の両方をTRUEと判定します。もし、数式が入っていない「真の未入力セル」だけを厳密に判定したい場合は、ISBLANK関数を使うのが安全です。
未入力データを計算に含めないことで、実務上の計算ミスや確認作業を大幅に減らせます。
【IFS関数】複数の条件を簡潔に処理する
IFS関数は、IF関数を何重にも入れ子にせず、複数の条件を簡潔に処理できる関数です。
=IFS(条件1,結果1,条件2,結果2,TRUE,その他の結果)
多段階評価などでIF関数が複雑になりやすい場合でも、数式の構造が分かりやすく、追加や修正がしやすくなります。
IF関数のよくあるエラーと対処法
IF関数は便利な反面、書き方やデータの状態によってはエラーが発生しやすい関数でもあります。エラーの仕組みを理解しておくことで、トラブルを未然に防ぎながらIF関数を活用できます。
【#VALUE!】値の種類が違う・計算できない
「#VALUE!」エラーは、数値として計算すべきセルに文字列が入っている場合や、計算できない形式のデータが混在しているときに発生します。
見た目は数値でも、CSV取込時のテキスト形式や全角数字が原因で文字列として扱われているケースも少なくありません。
IF関数で計算する前に、数値かどうかを判定したり、日付を正しい形式に変換したりすることでエラーを防げます。また、不要なスペースや改行が原因になることもあるため、事前にデータを整えることが大切です。
【#NAME?】関数名・文字列の書き方が誤っている
「#NAME?」エラーは、エクセルが数式内の名前を正しく認識できない場合に表示されます。IF関数では、文字列をダブルクォーテーションで囲み忘れるミスが多く、VIPなどをそのまま書くとエラーになります。
また、関数名のスペルミスや全角入力、存在しない関数の使用もエラーの原因です。さらに、使用しているエクセルのバージョンで未対応の関数を使うとエラーが出る点にも注意が必要です。
入力時は半角英数字を使い、オートコンプリート機能を活用するとミスを防ぎやすくなります。
【#REF!】参照しているセル範囲が無効になった
「#REF!」エラーは、IF関数が参照しているセルや行、列、シートが削除されたときに発生します。そのため、数式で参照していた列を削除すると、参照先が無効になりエラーになります。
特に共同編集やテンプレートの使い回しでは、他の人が使っている参照元を誤って削除してしまうケースもあるでしょう。
対策としては、削除前に参照関係を確認することや、行や列は削除せず非表示にする運用が有効です。テーブル機能を使うことで、構造変更によるエラーも防ぎやすくなります。
【#DIV/0!】0で割り算しようとした
「#DIV/0!」エラーは、0で割り算をしようとしたときに発生します。
実務では、売上を件数で割る計算や達成率の算出などで起こりやすく、分母が0や未入力のまま計算されることが原因です。このエラーが残ると、集計やグラフが正しく表示されません。
対策としては、IF関数で分母が0かを事前に判定し、0の場合は空白やメッセージを表示する方法が有効です。また、入力規則で0を入力できないように設定すると、エラー自体を未然に防げます。
まとめ
IF関数は、条件に応じて表示や計算を切り替えられる、エクセルやGoogleスプレッドシートの基本かつ重要な関数です。入金管理や売上評価、割引計算など、日常業務で発生する判断を数式に落とし込むことで、作業効率と正確性を向上させられます。
AND関数やOR関数との組み合わせや空白処理、IFS関数の活用により、複雑な条件にも対応可能です。正しい使い方を押さえることで、判断ミスの防止と業務の自動化を実現できます。
よくある質問
IF関数はどんなときに使いますか?
IF関数は、条件に応じて表示内容や計算結果を自動で切り替えたいときに使います。
業務では「この場合はこうする、それ以外は別の処理をする」といった判断が多く、手作業ではミスや手間が増えやすいです。
そこでIF関数を使えば、一度設定するだけで大量のデータを自動判定でき、基準変更も数式の修正だけで対応できます。請求書の督促表示や在庫不足の警告、売上目標の達成判定、勤怠の遅刻チェックなど, 日常業務の自動化に幅広く活用できます。
IF関数とIFS関数の違いは何ですか?
IF関数とIFS関数の違いは、複数条件の扱い方と数式の書きやすさにあります。
IF関数は「条件が真か偽か」を判定する基本的な関数で、複数条件を扱う場合は入れ子にして記述します。そのため条件が増えるほど数式が複雑になり、可読性や修正性が下がりやすいのが欠点です。
一方、IFS関数は複数の条件と結果を並べて書けるため、条件が多くても数式が分かりやすくなります。
ただし、IFS関数はエクセル2019以降とスプレッドシートでのみ使用可能なため、古いエクセル環境ではIF関数を使う必要があります。
