ExcelのIF関数の使い方|基本構文からネスト(入れ子)まで徹底解説
ポイント
- IF関数は、ある条件が真(TRUE)かどうかを判定する「論理テスト」を行うために使います。
- IF関数の構文は =IF(論理式, 真の場合の値, [偽の場合の値]) です。
- 記入例:=IF(A2>A3,"Bigger","Smaller")
この記事では、Excel 2019やMicrosoft 365を含むすべてのバージョンのExcelで、IF関数を使って論理テストを行う方法を、具体的な例とともに解説します。

IF関数とは?
ExcelのIF関数は、条件が満たされているかどうかを判定する「論理テスト」を行うための関数です。この関数を使った数式は、「IFステートメント」や「if/thenステートメント」とも呼ばれます。
IF関数を使ったすべての数式は、2つの結果のどちらかを返します。仕組みとしては、まず「何かが真であるか」をテストするように数式を組み立てます。真であればある処理が実行され、偽であれば別の処理が実行されるという流れです。詳しくは後述の例をご覧ください。
IF関数は、Excelで使える論理関数のひとつです。その他にも、AND、IFERROR、IFS、NOT、ORなどの論理関数があります。
IF関数の構文と引数
IF関数を使った数式は、次のような要素で構成されています。
=IF(logical_test, value_if_true, [value_if_false])
- logical_test(論理式):判定したい条件。必須の引数です。
- value_if_true(真の場合の値):logical_testが真だった場合に返す値。必須の引数です。
- value_if_false(偽の場合の値):logical_testが偽だった場合に返す値。省略可能です。
IFステートメントは、少し違った読み方をすると理解しやすくなります。「最初の部分が真なら、これを実行する。最初の部分が偽なら、代わりにこちらを実行する」というイメージです。
以下のルールも覚えておきましょう。
- logical_testが偽でvalue_if_falseが省略された場合、ExcelはFALSEを返します。
- value_if_trueまたはvalue_if_falseとして文字列を返す場合は、ダブルクォーテーション(")で囲む必要があります。ただし、TRUEとFALSEという語は例外です。
- IF関数は大文字と小文字を区別しません。
- Excel 2010以降では、同じ数式内に最大64個のIFステートメントを含められます。それ以前のバージョンでは7個までという制限があります。
IF関数の使用例
ここでは、ExcelでIF数式を活用できるさまざまなパターンを紹介します。
条件が真の場合に文字列を表示する
=IF(A2>A3,"Bigger","Smaller")
これはExcelのIFステートメントのごく基本的な例です。A2がA3より大きいかどうかをテストし、大きければ「Bigger」、そうでなければ「Smaller」と表示します。
条件が真の場合に計算を行う
=IF(A2>A3,A2-A3)
このIFステートメントは少し書き方が異なります。value_if_trueに文字ではなく計算式を指定しており、A2が実際にA3より大きい場合、その差が結果として返されます。条件が偽の場合、value_if_falseを省略しているため、ExcelはFALSEを返します。
数式を使って条件をテストする
=IF(A2/A3=5,A2/A3,"")
IFステートメントのもうひとつの書き方は、logical_testの部分で計算を行う方法です。ここの条件は「A2/A3=5」です。これが真であれば計算A2/A3を実行し、5と等しくなければ結果を空欄にするため、ダブルクォーテーションを使用しています。
日付が今日かどうかを確認する
=IF(A2=TODAY(),"This is today","")
IFステートメントの中には、他のExcel関数を組み込むこともできます。この例ではTODAY関数を使って、A2が今日の日付かどうかをチェックしています。今日の日付であれば「This is today」と表示され、そうでなければ何も表示されません。
AND関数をIF数式と組み合わせる
=IF(E2<=TODAY(),"Now","Soon")
=IF(AND(F2="Now",D2>=(B2-C2)),"Yes","No")
このIF関数の例は少し複雑です。ここでの目的は、支払いが必要な項目が期限切れかどうかを確認し、期限切れであればその金額を支払える予算があるかどうかをチェックすることです。両方の条件が真であれば、G列で支払いタイミングが来たことがわかります。
IF(E2<=TODAY(),"Now","Soon")は「緊急度」の列に入力されています。支払期日と今日の日付を比較することで、その項目が期限切れか、今日が期日かを判断できます。期日が今日以前であればF列に「Now」と表示され、そうでなければ「Soon」と表示されます。
2つ目のIFステートメントは、AND関数が使われていても、構造的には通常のIFステートメントと同じです。太字の部分がAND関数であり、最初のカンマの内側にあるため、logical_testとして機能しています。
=IF(AND(F2="Now",D2>=(B2-C2)),"Yes","No")
別の書き方をすると、他のIFステートメントと同じ構造であることがわかります。
=IF(このAND関数をテスト,真ならYesと表示、偽ならNoと表示)
AND関数の中には2つの条件が含まれています。
- F2="Now":G列の数式の一部で、F2に「Now」が入っているかどうかをチェックします。
- D2>=(B2-C2):2つの部分から成ります。まずB2-C2の計算で残りの支払額を求め、次にD2の利用可能な予算と比較して、支払えるだけの資金があるかを確認します。
つまり、今すぐ支払う必要があり、かつ支払う資金もある場合、「Yes」、つまり支払いタイミングであることが通知されます。
ネストされたIFステートメントの例
ネストされたIFステートメントとは、1つの数式の中に複数のIFステートメントが含まれている状態を指します。設定方法はほぼ同じですが、最初の括弧を閉じる代わりにカンマを打ち、別のステートメントを続けて書きます。
1つの数式に2つのIFステートメント
=IF(B2="F","Class A",IF(B2="M","Class B"))
最初の例は、生徒を性別で分類するために使われています。女性はクラスA、男性はクラスBに割り当てられます。数式はB2の「F」と「M」をチェックし、真となった条件に応じて「Class A」または「Class B」を表示します。
補足:ネストされたIF関数を含む数式の末尾に必要な閉じ括弧の数は、IFと書いた回数と同じです。この例ではIFが2回書かれているので、末尾に2つの括弧が必要です。
1つの数式に3つのIFステートメント
=IF(A2=TODAY(),"This is today",IF(A2<TODAY(),"Old date",IF(A2>TODAY(),"Future date")))
複数のIFステートメントを含む数式の例です。先ほどのTODAYの例とほぼ同じですが、論理テストが1つ追加されています。
- 最初のセットは、A2が今日の日付かどうかをチェックし、そうであれば「This is today」を返します。
- 2番目は、今日がA2より大きいか(つまりA2が過去の日付か)をテストし、真であれば「Old date」を返します。
- 最後に、今日の日付がA2より小さいか(つまりA2が未来の日付か)をテストし、真であれば「Future date」を返します。
条件が偽の場合に価格をコピーする
=IF(C2="Bill","",IF(C2="Food","",B2))
最後のネストIF数式の例では、特定のカテゴリに該当しない購入品の合計金額をすばやく把握する必要があります。不要な出費の合計を出す際、リストが長い場合にはこれが最適な方法です。ここでは「Bill」や「Food」という説明のある項目は重要な支出と判断し、それ以外の項目についてはB2の価格を表示させるようにしています。
数式の動作は以下の通りです。
- C2="Bill","":C2が「Bill」であれば、セルを空欄のままにします。
- C2="Food","":C2が「Food」であれば、セルを空欄のままにします。
- B2:上記のどちらの条件にも当てはまらない場合、B2の内容を表示します。
この数式によって残るのは価格のリストです。これをSUM関数で合計すれば、不要な項目にいくら使ったのかをすばやく把握できます。
ネストされたIFステートメントを見やすく書くコツ
数式が長くなるにつれて、管理が難しくなり、後の編集も大変になります。ネストされたIFステートメントを扱いやすくする方法のひとつは、各ステートメントの後に改行を入れることです。
=
IF(A2=TODAY(),"This is today",
IF(A2<TODAY(),"Old date",
IF(A2>TODAY(),"Future date")))Excelでこれを行うには、数式バーから編集します。
- Excel上部の数式バーを選択します。
- マウスをテキスト領域の下端に置き、カーソルが上下両矢印に変わったら、クリックしてドラッグしてボックスを下に広げ、作業スペースを確保します。
- イコール記号の後にカーソルを置き、Alt+Enter(Windows)またはCtrl+Option+Enter(Mac)を押します。これで数式の残りが新しい行に移動します。
- 各IFステートメントの前で手順3を繰り返し、すべてのIFがそれぞれ独立した行に配置されるようにします。
-
ExcelのFIXED関数の使い方を徹底解説!数値を指定桁数のテキストに変換する方法
ExcelのFIXED関数とは? FIXED関数は、Microsoft Excelに標準搭載されている文字列(テキスト)関数の一つです。数値を指定した小数点以下の桁数で四捨五入し、テキスト形式に変換して返します。レポートや帳票など、表示形式を整えた数値を文字列として扱いたい場合に便利な関数です。 FIXED関数の書式と引数 FIXED関数の書式は =FIXED(数値, [小数点以下の桁数], [桁区切り]) です。各引数の意味は以下のとおりです。 数値(Number):四捨五入してテキストに変換したい数値を指定します。この引数は必須です。 小数点以下の桁数(Decimals):小数点の右側に
-
ExcelのRANDBETWEEN関数の使い方|指定した範囲内の乱数を簡単に生成する3つの方法
Microsoft ExcelのRANDBETWEEN(ランドビトウィーン)関数は、数学/三角関数に分類される関数の一つで、指定した2つの数値の間からランダムな整数を返します。サイコロの目のような1〜6の乱数を作りたいときや、くじ引きの番号、テストデータなどを自動生成したい場合にとても便利です。 この記事では、RANDBETWEEN関数の書式と、セルへの直接入力、「関数の挿入」ダイアログボックス、「数式」タブを使った3つの方法を、初心者の方にもわかりやすく解説します。 RANDBETWEEN関数の書式 RANDBETWEEN関数の書式は以下の通りです。 =RANDBETWEEN(最小値, 最大