Latest evidence-based health information
Vision

Excel IFステートメント:入門に役立つ12個の論理式

Excel IFステートメント:入門に役立つ12個の論理式
Excel IFステートメント:入門に役立つ12個の論理式

Excelの関数、つまり数式は、このアプリケーションの豊富な機能の中核を担っています。今日は、条件が満たされているかどうかを判定する一連のコマンドであるIF文について解説します。「はい/いいえ」の質問と同様に、指定された条件が満たされている場合、Excelはユーザーが指定した値を返し、満たされていない場合は別の値を返します。

IF文は論理式とも呼ばれ、IF、then、elseで表されます。 何かが真ならこれを実行し、else /otherwiseならあれを実行します。例えば、雨が降っているならを閉め、else /otherwiseなら窓を開けたままにします。

Excel の IF ステートメントの構文(または文構造、つまり数式内でのコマンドの配置方法)は、=IF(論理テスト, true の場合の値, false の場合の値) です。IF ステートメントはすべてのプログラミング言語で使用されており、構文は多少異なる場合がありますが、関数は同じ結果を返します。

覚えておいてください:Excelの関数と数式とその仕組みを学ぶことは、Microsoftのイベント駆動型プログラミング言語であるVisual Basicを使いこなすための第一歩です。まずは3つの簡単なIF文から始め、次にネストされたIF文と多機能なIF文へと進みます。最後に、COUNTIF、SUMIF、AVERAGEIF、そしてワイルドカードを使ったIF文といった高度な関数を学習します。

シンプルなIF文

1. 延滞通知

このスプレッドシートでは、顧客の支払い期日がA列に、支払い状況がB列に、顧客の会社名がC列に記載されています。会社の会計担当者が各支払いの到着日を入力すると、このExcelスプレッドシートが作成されます。経理担当者はB列に数式を入力し、30日以上支払いを延滞している顧客を算出し、それに応じて延滞通知を送信します。

A. セル A1 に次の数式を入力します=TODAY()。現在の日付として表示されます。

B. セル B4 に数式を入力します=IF(A4-TODAY()>30, “Past Due”, “OK”)

この数式は、英語では次の意味になります:セル A4 の日付から今日の日付を引いた値が 30 日を超える場合はセル B4 に「Past Due」と入力し、そうでない場合は「OK」と入力します。この数式を B4 から B5 を通じて B13 にコピーします。

02b 支払遅延アカウントにフラグを設定するには、if ステートメントを使用します。 JD・サルティン / IDGワールドワイド

IFステートメントを使用して、支払い期限を過ぎたアカウントにフラグを付け、それらの顧客に通知を送信できるようにします。

2. ライフガード試験の合格/不合格

オレゴン州ライフガード認定試験は合否判定方式で、合格には最低限の要件を満たす必要があります。70%未満の得点は不合格、70%を超える得点は合格となります。A列には参加者の氏名、B列には得点、C列にはコースの合否が表示されます。C列の情報はIF文を用いて算出されます。

一度数式を入力すれば、このスプレッドシートは永久に再利用できます。四半期の初めに名前を変更し、四半期の終わりに新しい成績を入力するだけで、Excelが結果を計算します。

A. セルC4に次の数式を入力します。=IF(B4<70,”FAIL”,”PASS”)これは、セルB4のスコアが70未満の場合セルB4に「 FAIL」と入力し、それ以外の場合は「 PASS」と入力することを意味します。この数式をセルC4からセルC5、そしてセルC13にコピーします。

03b if文を使用して数値スコアを合格不合格ステータスに変換する JD・サルティン / IDGワールドワイド

IF ステートメントを使用して、数値スコアを合格/不合格のステータスに変換します。

3. 販売手数料とボーナス手数料

ウィルコックス・インダストリーズでは、10,000ドルを超えるすべての売上に対して、営業スタッフに10%のコミッションを支払っています。この金額未満の売上にはボーナスは支給されません。営業スタッフの名前はA列に記載されています。各スタッフの月間総売上高をB列に入力してください。C列では総売上高に10%を掛け、D列にはコミッション額または「ボーナスなし」という文字が表示されます。これで、D列に該当するコミッションを合計することで、8月に支払われたボーナス額を確認できます。

A. セルC4に次の数式を入力し=SUM(B4*10%)、C4からC5、そしてC13までコピーします。この数式は、各人の売上の10%を計算します。

B. セルD4に次の数式を入力し=IF(B4>10000, C4, “No bonus”)、D4からD5、そしてD13までコピーします。この数式は、売上高が10,000ドルを超える場合のC列のパーセンテージ、または売上高が10,000ドル未満の場合は「ボーナスなし」という文字をD列にコピーします。

C. セルD15に次の数式を入力します。=SUM(D4:D13)この数式は、今月のボーナスの合計金額を計算します。

04b if文を使用して販売ボーナス手数料を計算する JD・サルティン / IDGワールドワイド

IF ステートメントを使用して販売ボーナス手数料を計算します。

ネストされたIF文

4. ネストされたIF文を使ってスコアを成績に変換する

この例では、「ネストされた」IF文を使用して、数学の数値の点数を文字の成績に変換します。ネストされたIF文の構文は次のとおりです。IFデータが真の場合、これを実行します。IFデータが真の場合、これを実行します。IFデータが真の場合、これを実行します。IFデータが真の場合、これを実行します。そうでない場合はこれを実行します。IF関数は最大7つまでネストできます。

生徒の名前は列 A に、数値の点数は列 B に、文字の成績は列 C に表示されます。これらはネストされた IF ステートメントによって計算されます。

A. セル C4 に次の数式を入力し =IF(B4>89,”A”,IF(B4>79,”B”,IF(B4>69,”C”,IF(B4>59,”D”,”F”)))) 、C4 から C5、そして C13 までコピーします。

注:数式内のすべての開き括弧(左括弧)には、対応する閉じ括弧(右括弧)が必要です。数式でエラーが返された場合は、括弧の数を数えてください。

05b ネストされたif文を使用して数値スコアを文字の成績に変換する JD・サルティン / IDGワールドワイド

ネストされた IF ステートメントを使用して、数値スコアを文字の成績に変換します。

5. ネストされたIF文でスライディングスケールの販売手数料を決定する

この例では、ネストされた別のIFステートメントを使用して、スライディングスケールに基づいて複数のコミッション率を計算し、その月のコミッションを合計します。ネストされたIFステートメントの構文は次のとおりです。データが真の場合、これを実行します。データが真の場合、これを実行します。データが真の場合、これを実行します。それ以外の場合はこれを実行します。営業担当者の名前は列Aに、各担当者の月間売上合計は列Bに、コミッションは列Cにあります。コミッションはネストされたIFステートメントによって計算され、その列の下部(セルC15)に合計されます。

A. セル C4 に次の数式を入力し =IF(B4<5000,B4*7%,IF(B4<8000,B4*10%,IF(B4<10000,B4*12.5%,B4*15%))) 、C4 から C5、そして C13 までコピーします。

B. セルC15に次の数式を入力します。=SUM(C4:C13)この数式は、当月の合計コミッション額を計算します。

06b ネストされたif文を使用して、異なるパーセンテージに基づいて異なる手数料を計算する JD・サルティン / IDGワールドワイド

ネストされた IF ステートメントを使用して、異なるパーセンテージに基づいて異なるコミッションを計算します。

6. 数量に基づいて製品価格を計算する

多くの小売業者や卸売業者は、数量に応じて顧客に割引価格を提供しています。例えば、卸売業者がTシャツを1~10枚で1枚10.50ドル、11~25枚で1枚8.75ドルで販売するとします。以下のIF文を使って、卸売商品をまとめて購入することでどれだけのコストを削減できるかを計算しましょう。

A. セルA3に「卸売価格」というヘッダーを入力します。セルB3とC3に「数量」「原価」というヘッダーを入力します。

B. セル B4 から B9 に数量の区切りを入力します。

C. セル C4 から C9 に価格の値引きを入力します。

これは卸売ビジネスの数量/価格マトリックスです。

07b 数量に基づいて製品価格を計算する JD・サルティン / IDGワールドワイド

数量に基づいて製品価格を計算します。

D. 次に、セル B11 と C11 にヘッダーの「注文数量」「原価数量」を入力します。

E. セル A11 にヘッダー「卸売製品」を入力し、その下に必要な数の製品を入力します。

F. 列 B に各製品の注文数量を入力します。

G. 最後に、列 C の隣接するセルに次の数式を入力します。

=B12*IF(B12>=101,3.95,IF(B12>=76,5.25,IF(B12>=51,6.3,IF(B12>=26,7.25, IF(B12>=11,8,IF(B12>=1,8.5,””))))))

この数式にはスペースが含まれていないことに注意してください。列Cに必要な数式をコピーして、列Aと列Bのすべての卸売商品と数量に適用します。

H. 注文が完了したら、合計行を作成します。列A(この場合はA20)に「TOTAL Invoice Amount」と入力します。列C(この場合はC20)で、SUM関数を使用して列の合計を計算します。

これですべての数式が設定されました。毎週(または毎月)B列に新しい数量を入力するだけで、あとはExcelが自動で計算します。価格が変わった場合は、スプレッドシート上部の行列を変更するだけで、他のすべての数式と合計が自動的に調整されます。

多機能IF文

7. IF文内で他の関数を使用する

この例では、2つのIF文をネストし、SUM関数をすべて同じ数式に挿入します。目的は、個人の目標が会社の月間上限より小さいか、等しいか、大きいかを判断することです。

A. B1 に毎月の上限額を入力します。これは、会社の予想を反映するために毎月変更できます。

B. セル A3 から G3 に次のヘッダーを入力します: Goals1st Qtr2nd Qtr3d Qtr4th QtrGoals or Cap?Bonus

C. セル A4 から A8 に、上位 5 人のマーケティング担当者の目標金額を入力します。

D. 同じ個人の四半期合計をセル B4 から E8 に入力します。

08b if文内で他の関数を使用する JD・サルティン / IDGワールドワイド

If文内で他の関数を使用する

目標を達成した従業員には、目標額の10%がボーナスとして支給されます。月間上限を超えた従業員には、実際の売上高の25%がボーナスとして支給されます。ボーナス額は、以下の計算式を用いて算出します。

E. セルF4からF8に次の数式を入力します: =IF(A4<=B1,A4,IF(A4>B1,SUM(B4:E4,0)))

F. セル G4 から G8 に次の数式を入力します: =IF(F4<=A4,F4*10%,IF(F4>=B1,F4*25%,0))

8. IF関数を使ってゼロ除算を避ける

Excel で任意の数値をゼロで割ろうとすると、次のエラー メッセージが表示されます: #DIV/0!

では、除算に基づく計算を必要とする大規模なデータベースがあり、一部のセルにゼロが含まれている場合はどうすればよいでしょうか?この問題を解決するには、次のIFステートメント式を使用します。

A. Friar Tuck's Fundraisers のスタッフが毎月集めたお金を追跡するには、スプレッドシートを開き、次のヘッダーを作成します: A1 にドル、 B1 に従業員 1 人あたりのドル、C1 に残りのドル

B. 列 A に金額をいくらか入力し、列 B に 1 日あたりに働くスタッフの数を入力します。誰も働いていない日もあるため、列 B にはゼロが含まれます (ただし、寄付は郵便で届きます)。

C. C2からC11に次の数式を入力します:=IF(B2<>0,A2/B2,0)。IFステートメントを使用することで、Excelが集めた資金をゼロで割ってしまうのを防ぎ、有効な数値のみが計算されます。

09b ゼロ除算によるエラーを回避するために if を使用する JD・サルティン / IDGワールドワイド

ゼロ除算によるエラーを回避するには、IF を使用します。

D. 別のIFステートメントを使ってB列のゼロを見つけ、A列の対応する金額を合計し、それを全社員で均等に分配します。この数式をD2からD11にコピーします:=IF(B4=0,A4,0)

E. 次に、カーソルを B12 に移動し、数式 =MAX(B2:B11) を入力して、列 B の従業員の最大数 (8 人) を見つけます。

F. カーソルをD12に移動し、次の数式を入力します:=SUM(D2:D11)/B12。答えは、Friar Tuck's Fundraisersで働く8人のスタッフ1人あたり392.50ドルです。

COUNTIF、SUMIF、AVERAGEIF、ワイルドカード付きIF

9. 特定の条件を満たすにはCOUNTIF関数を使う

COUNTIFは、指定した条件(セル範囲に含まれる)に基づいて、セル範囲の内容をカウントするIFステートメントです。構文はシンプルです。「数式, 範囲, 条件」のように、=COUNTIF(範囲, 条件) と入力します。

この例では、COUNTIF を使用して、特定の範囲内で、選択した数値より大きい、選択した数値より小さい、選択した数値と等しい、または 2 つ以上の論理演算子の組み合わせに該当するセルをカウントします。

より大きい >

A. セル A4 から A16 に数値を入力します。

B. セルE4に次の数式を入力します: =COUNTIF($A$4:$A$16,”>1610″)

C. 次に、セル F4 に「より大きい」数値を入力して、数式が機能することを確認します。

D. E4 を E5 から E11 までコピーし、より大きい値を別の数値に変更します。

未満 <

A. 列 B (B4:B16) に 13 個の数字を入力します。

B. セルG4に次の数式を入力します: =COUNTIF($B$4:$B$16,”<200″)

C. 次に、セル H4 に「より小さい」数値を入力して、数式が機能することを確認します。

D. G5 から G11 まで G4 をコピーし、小さい方の値を別の数値に変更します。

等しい =

A. 列 C (C4:C16) に 13 個の数字を入力します。

B. セルI4に次の数式を入力します: =COUNTIF($C$4:$C$16,”<2010″)

C. 次に、セル J4 に「等しい」数値を入力して、数式が機能することを確認します。

D. I5 から I11 まで I4 をコピーし、小さい方の値を別の数値に変更します。

注:これらの論理演算子を組み合わせて、結果の範囲を広げることもできます。例えば、「以上」の場合: =COUNTIF($A$4:$A$16,”>=1610″)、「以下」の場合: =COUNTIF($A$4:$A$16,”<=1655″)

10 特定の条件を満たすためにcountifを使用する JD・サルティン / IDGワールドワイド

特定の条件を満たすには、COUNTIF を使用します。

この例では、COUNTIF を使用して、選択した日付、ドル、またはテキストに一致する指定範囲内のすべてのセルをカウントします。

E. 列 A4:A12 に日付を入力し、列 B4:B12 に花などのテキストを入力し、列 C4:C12 にドルを入力します。

F. 列D「単一日付」、D4、D5、D6、D7、D8に次の数式を入力します。

=COUNTIF($A$4:$A$12, “>=9/1/2018”); =COUNTIF($A$4:$A$12, “>=2/6/2018”); =COUNTIF($A$4:$A$12, “>=12/7/2018”); =COUNTIF($A$4:$A$12, “>=5/14/2018”); および =COUNTIF($A$4:$A$12, “>=8/9/2018”)。

G. 列E「単一テキスト文字列」、E4、E5、E6、E7、E8に次の数式を入力します。

=COUNTIF($B$4:$B$12, “=バラ”); =COUNTIF($B$4:$B$12, “=デイジー”); =COUNTIF($B$4:$B$12, “=チューリップ”); =COUNTIF($B$4:$B$12, “=ユリ”); および =COUNTIF($B$4:$B$12, “=水仙”)

H. 列G「複数のテキスト文字列」、G4、G5、G6、G7、G8に次の数式を入力します。

=COUNTIF($B$4:$B$10, “=バラ”)+COUNTIF($B$4:$B$12, “デイジー”); =COUNTIF($B$4:$B$10, “=バラ”)+COUNTIF($B$4:$B$12, “チューリップ”); =COUNTIF($B$4:$B$10, “=チューリップ”)+COUNTIF($B$4:$B$12, “水仙”); =COUNTIF($B$4:$B$10, “=ユリ”)+COUNTIF($B$4:$B$12, “デイジー”); および =COUNTIF($B$4:$B$10, “=ユリ”)+COUNTIF($B$4:$B$12, “チューリップ”)

I. 列I「ドル」、I4、I5、I6、I7、I8に次の数式を入力します。

=COUNTIF(C4:C12,”<=30″); =COUNTIF($C$4:$C$12,”>=100″); =COUNTIF($C$4:$C$12,”<=75″); =COUNTIF($C$4:$C$12,”=50″); =COUNTIF($C$4:$C$12,”<=25″)

011 countifを使用して、選択した日付の範囲内のセルをcountmatchします。ドルのテキスト JD・サルティン / IDGワールドワイド

COUNTIF を使用して、選択した日付、ドル、またはテキストの範囲内のセルの数を数えて一致させます。

10. SUMIF を使用して、特定の条件を満たす範囲内の値を追加します。

基本的には、条件に一致させたいデータを含む数値、日付、またはテキストの範囲(または列)を作成します。条件とは、元の範囲から一致させたい特定の値、日付、またはテキストのことで、合計範囲とは、条件が決定された後に合計される列のことです。

A. たとえば、列 A4:A19 に、ニューヨークの 5 つの行政区 (マンハッタン、ブルックリン、クイーンズ、ブロンクス、スタテン アイランド) を入力します。

B. 列 B4:B19 に、5 つの行政区内の橋を入力します。

C. 列 C4:C19 に、各行政区内の各橋で徴収される通行料の金額を入力します。

D. 列 D4:D8 に、一致させたい最初の条件を入力します (例: マンハッタン、クイーンズ、ブロンクスなど)。

E. 列 E4:E8 に、SUMIF 式を入力します: =SUMIF($A$4:$A$19, D4, $C$4:$C$19) (E4:E8 の場合)。

F. ファンクション キー F4 を使用して、範囲 (列 A) と合計範囲 (列 C) を絶対値にしますが、条件列 D は絶対値にしません。その後は、数式を下にコピーするだけです。

G. E9列からE13列に、一致させたい最初の条件を入力し、F9列からF13列に2つ目の条件を入力します。次に、SUMIF式「=SUMIF($A$4:$A$20,D9,$C$4:$C$19) + SUMIF($A$4:$A$20,F9,$C$4:$C$19)」をE9列からE13列まで入力し、E13列までコピーします。条件はCriteria1(列D)とCriteria2(列F)から一致していることに注意してください。

H. 列 E14:E19 に、SUMIF の「ハードコードされた」数式 (つまり、条件が数式内にコード化されている) を入力します (=SUMIF($A$4:$A$19,”Brooklyn”,$C$4:$C$19) + SUMIF($A$4:$A$19,”Queens”,$C$4:$C$19))。これを E19 までコピーし、各数式の条件を変更して、D14:D19 のデータと一致させます。

注:条件は、別のセルに入力することも、数式にハードコードすることもできます。別のセルを使用する利点は、数式を書き直すことなく条件を簡単に変更できることです。もちろん、G(上記)の方が、数式内に条件をハードコードする(H)よりもはるかに簡単で合理的ですが、将来的にはハードコードの方がより適切な状況が発生するかもしれません。

012 sumifを使用して、特定の条件を満たす範囲内の値を加算する JD・サルティン / IDGワールドワイド

SUMIF を使用して、特定の条件を満たす範囲内の値を追加します。

11. AVERAGEIF を使用して、特定の条件を満たす範囲内の値を平均します。

AVERAGEIFはSUMIFと似ていますが、数値を合計するのではなく平均を求める点が異なります。この数式の構文は、=AVERAGEIF(範囲, 条件, 平均範囲)です。

A. 列 A4:A20 に 17 個の大学科目を入力します。

B. 列 B4:B20 に対応するジャンルを入力します。

C. 列 C4:C20 に、各科目とジャンルに登録されている学生の数を入力します。

D. D4:D9 の各科目の生徒の平均数を取得するために一致させたい条件を入力します。

E. E4:E9に数式を入力します。つまり、=AVERAGEIF($A$4:$A$20, D4, $C$4:$C$20)です。この数式をE9までコピーします。

F. 一致させる条件 1 と条件 2 を入力して、指定された 2 つの科目の学生の平均数を D10:D15 と F10:F15 に入力します。

G. E10:E15に数式を入力します。つまり、 = =AVERAGEIF($A$4:$A$20,D10,$C$4:$C$20) + AVERAGEIF($A$4:$A$20,F10,$C$4:$C$20) です。この数式をE15までコピーします。

H. 列 E16:E20 に、AVERAGEIF の「ハードコード」数式を入力します。つまり、条件は数式内にコード化されます: =AVERAGEIF($A$4:$A$20,”History”,$C$4:$C$20) + AVERAGEIF($A$4:$A$20,”Geography”,$C$4:$C$20)。次に、E20 までコピーし、各数式の条件を D16:D20 のデータに合わせて変更します。

013 averageif を使用して、特定の条件を満たす範囲内の値を平均します JD・サルティン / IDGワールドワイド

特定の条件を満たす範囲内の値を平均するには、AVERAGEIF を使用します。

12. IF文でワイルドカードを使用する

A. アスタリスク (*) は任意の数の文字を表します。たとえば、op* は operator、opposition、opulent、opolent などの意味になります。

B. 疑問符 (?) は 1 文字を表します。たとえば、m?th は math、moth、meth、myth などになります。

C. チルダ (~) は、テキスト内のキーボード入力文字とは別のワイルドカード文字 (~ * ?) を識別します。つまり、アスタリスクはワイルドカードではなく記号として扱われます。例えば、「moon」という単語の後にアスタリスクが続く場合 (moon*)、この検索文字列は、「moon」で始まるすべての単語と、それに続く「moon」という語根を持つ他のすべての単語 (例: moonshine、moonlight、moonstone など) を返します。「moon」という単語の後にアスタリスクが続く場合、チルダ (~) を使用して、Excel にアスタリスク (この場合) がワイルドカードではないことを伝えます。構文は「moon~*」のようになります。

D. 列 A3:A21 に、Wally World、Sea World、Fairy Worlds などの関連項目を入力します。

E. 列 B3:B11 に、アスタリスク (*) ワイルドカードを使用して次の数式を入力します: =COUNTIF($A$3:$A$21,”*world*”)。次に、各数式の条件となる単語 (“*land*”、“*Fairy*”、“*Sea*” など) を変更しながら、数式を B11 までコピーします。

F. 列C3:C21に9種類の衣類を入力します。行数は19行なので、多くの項目が重複します。

G. 列 D3:D21 に、列 C の各項目のコストを入力します。

H. E3列からE11列まで、アスタリスク(*)ワイルドカードを使用して次の数式を入力します:=SUMIF($C$3:$C$21,”*Suits*”,$D$3:E3)。この数式をE11列までコピーし、検索条件を「ジャケット」「ジーンズ」「セーター」「スカート」「ベスト」「手袋」「ドレス」「靴」に変更するか、独自の検索条件を入力します。

I. 列 E12 から E21 に、アスタリスク (*) ワイルドカードを使用して次の数式を入力します: =SUMIF($C$3:$C$21,”*Shoes*”,$D$3:$D$21) + SUMIF($C$3:$C$21,”*Jeans*”,$D$2:$D$9)。次に、条件語を「靴とジーンズ」、「ジャケットとベスト」、「スカートとセーター」、「ドレスと靴」、「スカートとベスト」、「ジーンズとジャケット」、「スーツと手袋」、「セーターとベスト」、「靴と手袋」、「靴とスーツ」に変更するか、独自の条件語を選択します。

014 if文でワイルドカードを使用する JD・サルティン / IDGワールドワイド

IF文でワイルドカードを使用する

編集者注: この記事は、2015 年 9 月 8 日の最初の投稿から更新されました。

Otpoo

Health writer and researcher with expertise in evidence-based medicine and healthcare information.