エクセルで「ある条件を満たしたときだけ値を表示したい」「複数の条件すべてに合うときだけ結果を出したい」と思ったことはありませんか?
この記事では【Excel】エクセルで条件が合えば表示する(IF・複数条件・条件分岐・かつ・リスト対応)関数の使い方について解説していきます。
ポイントは
・IF関数で条件に合う値だけを表示する
・AND関数で「かつ」の複数条件を設定する
・IFS関数で複数の条件分岐を整理する
・MATCH・IFを組み合わせてリストに対応する
それでは詳しく見ていきましょう。
エクセルで条件が合えば表示するにはIF関数が基本【まず結論】
エクセルで「条件が合えば表示する」操作の中心となるのが、IF関数です。
IF関数は、指定した条件が真(TRUE)のときと偽(FALSE)のときで、表示する内容を切り替えられる関数です。
まずはこの記事で使用するサンプルデータをご覧ください。
| A | B | C | D | |
|---|---|---|---|---|
| 1 | 商品名 | カテゴリ | 単価(円) | 在庫数 |
| 2 | マグロ刺身 | 鮮魚 | 1200 | 15 |
| 3 | 柏餅 | 和菓子 | 350 | 3 |
| 4 | カツオたたき | 鮮魚 | 980 | 0 |
| 5 | マシュマロ | 菓子 | 280 | 42 |
| 6 | アボカド | 野菜 | 198 | 8 |
| 7 | 桜餅 | 和菓子 | 320 | 0 |
| 8 | ハラス塩焼き | 鮮魚 | 850 | 5 |
このサンプルを使って、在庫数や単価を条件にした「条件が合えば表示する」操作を順番に解説していきます。
IF関数の基本書式は以下のとおりです。
=IF(論理式, 真の場合, 偽の場合)
たとえば、D列の在庫数が0のとき「在庫なし」、そうでなければ「在庫あり」と表示したい場合は、E2セルに以下のように入力します。
=IF(D2=0,”在庫なし”,”在庫あり”)
数式を入力すると、下図のようになります。
| A | B | C | D | E | |
| 1 | 商品名 | カテゴリ | 単価(円) | 在庫数 | 在庫状況 |
| 2 | マグロ刺身 | 鮮魚 | 1200 | 15 | =IF(D2=0,”在庫なし”,”在庫あり”) |
| 3 | 柏餅 | 和菓子 | 350 | 3 | 在庫あり |
| 4 | カツオたたき | 鮮魚 | 980 | 0 | 在庫なし |
| 5 | マシュマロ | 菓子 | 280 | 42 | 在庫あり |
E2セルに数式を入力し、E8セルまでオートフィルで引っ張ることで、すべての行に同じ条件判定が適用されます。
論理式の部分には、比較演算子(=、<、>、<=、>=、<>)を使って条件を記述します。
真の場合・偽の場合に文字列を表示するときは、必ずダブルクォーテーション(” “)で囲むことを忘れないようにしましょう。
数値を返す場合はダブルクォーテーションは不要です。
また、偽の場合に何も表示したくないときは、””(空文字)を指定します。
=IF(D2=0,”在庫なし”,””)
この場合、在庫数が0のセルだけに「在庫なし」が表示され、それ以外のセルは空白になります。
【操作のポイント】IF関数は「=IF(条件,真の場合,偽の場合)」の3つの引数で構成される。文字列を返す場合はダブルクォーテーションで囲み、空白を返したいときは””を指定する。
エクセルで「かつ」の複数条件が合えば表示する【AND関数との組み合わせ】
「単価が500円以上、かつ在庫数が1以上の商品だけを表示したい」など、複数の条件をすべて満たす場合にだけ値を表示したいケースがあります。
このような「かつ(AND)」の条件には、IF関数とAND関数を組み合わせる方法が最適です。
AND関数の書式は以下のとおりです。
=AND(条件1, 条件2, 条件3, …)
すべての条件が真(TRUE)のときだけTRUEを返し、1つでも偽(FALSE)があればFALSEを返します。
IF関数と組み合わせると次のようになります。
=IF(AND(C2>=500,D2>=1),”販売可”,”対象外”)
この数式は「C2(単価)が500以上、かつD2(在庫数)が1以上であれば『販売可』、そうでなければ『対象外』を表示する」という意味です。
サンプルデータに当てはめると、マグロ刺身(単価1200円・在庫15)は両方の条件を満たすため「販売可」、カツオたたき(単価980円・在庫0)は単価条件を満たしても在庫が0なので「対象外」になります。
柏餅(単価350円・在庫3)は在庫はあっても単価が500円未満のため、こちらも「対象外」と判定されます。
AND関数に指定できる条件は最大255個までです。
ただし、条件が多くなると数式が読みにくくなるため、実務では3〜5個程度にまとめるのが望ましいでしょう。
【操作のポイント】「かつ」の複数条件はIF関数の論理式にAND関数を入れ子にする。AND関数内のすべての条件がTRUEのときだけ真の場合が表示される。
エクセルで「または」の条件が合えば表示する【OR関数との組み合わせ】
「在庫数が0、または単価が200円未満の商品は要注意」といった、どちらか一方でも条件を満たせばよいケースには、IF関数とOR関数を組み合わせる方法を使います。
OR関数の書式は以下のとおりです。
=OR(条件1, 条件2, 条件3, …)
いずれか1つでも条件が真(TRUE)であればTRUEを返します。
すべての条件が偽(FALSE)のときだけFALSEを返す点がAND関数との大きな違いです。
IF関数と組み合わせると次のようになります。
=IF(OR(D2=0,C2<200),”要確認”,”問題なし”)
この数式は「在庫数が0、または単価が200円未満であれば『要確認』、そうでなければ『問題なし』を表示する」という意味です。
サンプルデータでは、カツオたたき(在庫0)・桜餅(在庫0)・アボカド(単価198円)が「要確認」と判定されます。
AND関数とOR関数は組み合わせて使うことも可能で、「(単価500円以上、かつ在庫あり)または(カテゴリが和菓子)」といった複雑な条件も一つの数式で表現できます。
【操作のポイント】「または」の条件はIF関数の論理式にOR関数を入れ子にする。OR関数内のいずれか1つでもTRUEであれば真の場合が表示される点がAND関数との違い。
エクセルで複数の条件分岐を設定して表示する【IFS関数の使い方】
条件が3つ以上に分岐する場合、IF関数を入れ子にすることで対応できますが、数式が非常に複雑になりがちです。
そのような場面では、IFS関数を使うと複数の条件分岐をすっきりと整理できます。
IFS関数はExcel 2019以降およびMicrosoft 365で使用可能な関数です。
IFS関数の書式は以下のとおりです。
=IFS(条件1,値1,条件2,値2,条件3,値3,…)
条件1が真ならば値1を返し、条件2が真ならば値2を返す、という形で上から順番に評価していきます。
最初に真になった条件の値が返され、それ以降の条件は評価されません。
サンプルデータの在庫数をもとに、在庫ランクを表示する例を見てみましょう。
=IFS(D2=0,”欠品”,D2<=5,”残少”,D2<=20,”通常”,D2>20,”十分”)
この数式は次のような分岐になります。
在庫数が0なら「欠品」、1〜5なら「残少」、6〜20なら「通常」、21以上なら「十分」と表示します。
サンプルデータに当てはめると、マグロ刺身(在庫15)は「通常」、柏餅(在庫3)は「残少」、カツオたたき(在庫0)は「欠品」、マシュマロ(在庫42)は「十分」となります。
【イメージ図2】
| A | B | C | D | E | |
| 1 | 商品名 | カテゴリ | 単価(円) | 在庫数 | 在庫ランク |
| 2 | マグロ刺身 | 鮮魚 | 1200 | 15 | =IFS(D2=0,”欠品”,D2<=5,”残少”,D2<=20,”通常”,D2>20,”十分”) |
| 3 | 柏餅 | 和菓子 | 350 | 3 | 残少 |
| 4 | カツオたたき | 鮮魚 | 980 | 0 | 欠品 |
| 5 | マシュマロ | 菓子 | 280 | 42 | 十分 |
| 6 | アボカド | 野菜 | 198 | 8 | 通常 |
| 7 | 桜餅 | 和菓子 | 320 | 0 | 欠品 |
| 8 | ハラス塩焼き | 鮮魚 | 850 | 5 | 残少 |
IFS関数を使うことで、入れ子になったIF関数と比べて数式の構造がひと目でわかりやすくなります。
なお、どの条件にも当てはまらない場合に備えて、最後の条件にTRUEを指定しておくと安全です。
=IFS(D2=0,”欠品”,D2<=5,”残少”,D2<=20,”通常”,TRUE,”十分”)
TRUEを最後に置くことで「それ以外のすべての場合」を受け止めることができ、エラーを防ぐことができます。
【操作のポイント】IFS関数は条件と返す値をペアで並べる形式で、入れ子のIFより可読性が高い。最後の条件にTRUEを指定することで「それ以外」を安全に受け止められる。
エクセルでIF関数を入れ子にして複数条件分岐を表示する【ネストの使い方】
Excel 2016以前の環境や、IFS関数が使えない場面では、IF関数を入れ子(ネスト)にして複数の条件分岐を作る方法を使います。
IF関数の「偽の場合」の引数に、さらにIF関数を入れることで、3段階・4段階の条件分岐が実現できます。
先ほどの在庫ランクをIF関数の入れ子で書くと次のようになります。
=IF(D2=0,”欠品”,IF(D2<=5,”残少”,IF(D2<=20,”通常”,”十分”)))
外側のIF関数から順番に評価され、「在庫が0か?」→「5以下か?」→「20以下か?」という順序で判定が進みます。
どの条件にも当てはまらなかった場合(在庫が21以上)に「十分」が返ります。
IF関数の入れ子はExcelのすべてのバージョンで使えるため、互換性の面では優れています。
ただし、分岐が5段階・6段階と増えるほど括弧の数も増え、数式の修正や確認が難しくなります。
Excel 2019以降を使用している場合は、なるべくIFS関数を使うほうがミスを防ぎやすいでしょう。
【操作のポイント】IF関数の入れ子は「偽の場合」に次のIF関数を入れていく形で作成する。分岐が多くなるほど括弧が複雑になるため、Excel 2019以降ではIFS関数を優先的に使うとよい。
エクセルでリストと照合して条件が合えば表示する【COUNTIF・MATCHとIFの組み合わせ】
「別シートに用意した対象リストに含まれる商品だけ表示したい」「特定のカテゴリリストに合致する行だけ処理したい」という場面があります。
このようなリストとの照合には、COUNTIF関数またはMATCH関数をIF関数と組み合わせる方法が効果的です。
COUNTIF関数でリストと照合する方法
COUNTIF関数を使うと、指定した範囲の中に特定の値が何件あるかを数えられます。
件数が1以上であれば「リストに存在する」と判断できるため、IF関数と組み合わせることでリスト照合が実現できます。
たとえば、F列に「対象カテゴリリスト」として「鮮魚」「和菓子」が入力されているとします。
=IF(COUNTIF($F$2:$F$3,B2)>=1,”対象”,”対象外”)
この数式は「B2のカテゴリがF2:F3のリストに1件以上含まれていれば『対象』、そうでなければ『対象外』を表示する」という意味です。
サンプルデータでは、マグロ刺身・カツオたたき・ハラス塩焼き(カテゴリ:鮮魚)と柏餅・桜餅(カテゴリ:和菓子)が「対象」と表示されます。
マシュマロ(菓子)とアボカド(野菜)はリストにないため「対象外」になります。
MATCH関数でリストと照合する方法
MATCH関数は、指定した値が範囲の何番目に位置するかを返す関数です。
値が見つからない場合はエラー(#N/A)を返すため、ISNUMBER関数またはIFERROR関数と組み合わせてIF関数に接続します。
=IF(ISNUMBER(MATCH(B2,$F$2:$F$3,0)),”対象”,”対象外”)
MATCH関数が数値を返した(一致した)場合、ISNUMBER関数がTRUEを返し、IF関数が「対象」を表示します。
一致しなかった場合はMATCH関数がエラーを返し、ISNUMBERがFALSEになるため「対象外」が表示されます。
COUNTIF関数との違いは、MATCH関数は完全一致のみを判定する点です。
大量データでの検索速度はMATCH関数のほうが若干速いケースもありますが、通常の業務用途ではCOUNTIF関数のほうがシンプルで使いやすいでしょう。
【操作のポイント】リストとの照合にはCOUNTIF関数をIF関数と組み合わせる方法が最もシンプル。「=IF(COUNTIF(リスト範囲,照合値)>=1,”対象”,”対象外”)」の形で記述する。
エクセルでIFERRORと組み合わせてエラー時の表示を条件分岐する
VLOOKUP関数やMATCH関数などを使った際に、検索値が見つからないと「#N/A」エラーが表示されることがあります。
このエラーを別の文字列に置き換えたい場合には、IFERROR関数とIF関数を組み合わせる方法が便利です。
IFERROR関数の書式は以下のとおりです。
=IFERROR(値, エラーの場合の値)
「値」の部分がエラーでなければそのまま返し、エラーであれば「エラーの場合の値」を返します。
たとえば、商品名をもとに別テーブルから単価を取得し、見つからなければ「未登録」と表示する場合は次のようになります。
=IFERROR(VLOOKUP(A2,$F$2:$G$5,2,0),”未登録”)
さらに、取得した単価をもとにIF関数で「高単価」「標準」などの判定を加えることも可能です。
=IF(IFERROR(VLOOKUP(A2,$F$2:$G$5,2,0),0)>=500,”高単価”,”標準”)
この場合、VLOOKUPでエラーが発生した場合は0として扱い、500未満なので「標準」と表示されます。
IFERROR関数を活用することで、エラーが混在したデータでも条件分岐がスムーズに機能するようになります。
【イメージ図3】
| A | B | C | D | E | |
| 1 | 商品名 | カテゴリ | 単価(円) | 在庫数 | 単価区分 |
| 2 | マグロ刺身 | 鮮魚 | 1200 | 15 | =IF(IFERROR(C2,0)>=500,”高単価”,”標準”) |
| 3 | 柏餅 | 和菓子 | 350 | 3 | 標準 |
| 4 | カツオたたき | 鮮魚 | 980 | 0 | 高単価 |
| 5 | マシュマロ | 菓子 | 280 | 42 | 標準 |
| 6 | アボカド | 野菜 | 198 | 8 | 標準 |
| 7 | 桜餅 | 和菓子 | 320 | 0 | 標準 |
| 8 | ハラス塩焼き | 鮮魚 | 850 | 5 | 高単価 |
IFERROR関数はエラーを隠すだけでなく、エラー時に別の処理へ分岐させるための「安全網」として活用できます。
【操作のポイント】IFERROR関数はエラー発生時に代替値を返す。IFと組み合わせることで「エラーなら別処理、正常値なら条件分岐」という高度な判定が1つの数式で実現できる。
まとめ エクセルで条件が合えば表示する(リスト対応・かつ・条件分岐・複数条件・IF)関数の使い方
エクセルで条件が合えば表示する関数の使い方をまとめると、以下のとおりです。
基本のIF関数は「=IF(条件,真の場合,偽の場合)」の3つの引数で構成され、条件に合う値だけを表示できます。
「かつ」の複数条件にはAND関数をIF関数の論理式に組み込み、「または」の条件にはOR関数を使います。
3段階以上の条件分岐が必要な場合は、IFS関数(Excel 2019以降)を使うと数式がすっきりまとまります。
IFS関数が使えない環境ではIF関数を入れ子にして対応できますが、分岐が多くなるほど可読性が下がるため注意が必要です。
別シートのリストと照合して表示を切り替えたい場合は、COUNTIF関数またはMATCH関数とIF関数を組み合わせる方法が有効です。
エラーが発生しうる数式にはIFERROR関数をかぶせることで、エラー時にも意図した値を表示できます。
これらの関数を状況に応じて使い分けることで、条件に合ったデータだけをスマートに表示・管理できるようになります。
まずは基本のIF関数から始めて、少しずつAND・IFS・COUNTIFとの組み合わせに挑戦してみましょう。