概要
Microsoft Excel では、SUM+IF ステートメント内で論理関数 AND または OR を使用して複数の条件の範囲をテストすると、想定どおりに動作しない可能性があります。 入れ子になった IF ステートメントは、この機能を提供します。ただし、この記事では、次の数式を使用する 2 つ目の簡単なメソッドについて説明します。
AND 条件の場合
=SUM(IF(Test1*Test2*...*Testn))
OR 条件の場合
=SUM(IF(Test1+Test2+...+Testn))
詳細情報
特定のテストに合格した範囲内のセル数をカウントしたり、別の (または同じ) 範囲の対応する値が指定した条件を満たす範囲内の値を合計したりするには、SUM + IF ステートメントを使用します。 これは、Microsoft Excel の DSUM 関数と同様に動作します。
例
次の使用例は、範囲 A1:A10 の値のうち、1 ~ 10 の範囲の値を含む数をカウントします。
次の入れ子になった IF ステートメントを使用できます。
=SUM(IF(A1:A10>=1,IF(A1:A10<=10,1,0)))
次の方法も機能し、複数のテストを実行する場合は読みやすくなります。
=SUM(IF((A1:A10>=1)*(A1:A10<=10),1,0))
次のメソッドは、指定された 2 つの日付の間にある日付の数をカウントします。
=SUM(IF((A1:A10>=DATEVALUE("1/10/99"))*(A1:A10<=DATEVALUE("2/10/99")),1,0))
注
- Ctrl + Shift + Enter キーを同時に押して、これらの数式を配列数式として入力する必要があります。 Macintosh で、代わりに COMMAND + RETURN キーを押します。
- 配列は列全体を参照できません。
このメソッドでは、1 つの論理テストの結果と別の論理テストを乗算して、TRUEs と FALSEs を SUM 関数に返します。 これらは次の例と同じにすることができます。
TRUE*TRUE=1
TRUE*FALSE=0
FALSE*TRUE=0
FALSE*FALSE=0
上記のメソッドは、両方のテストが TRUE と評価される範囲 A1:A10 のセル数をカウントします。 対応するセル (B1:B10 など) の値を合計するには、次のように数式を変更します。
=SUM(IF((A1:A10>=1)*(A1:A10<=10),B1:B10,0))
同様に、SUM+IF ステートメントに OR を実装できます。 これを行うには、乗算符号 (*) をプラス記号 (+) に置き換えて、上記の数式を変更します。 次の一般的な数式が提供されます。
=SUM(IF((Test1)+(Test2)+...+(Testn),1,0))
リファレンス
条件に基づいて値を計算する方法の詳細については、[ヘルプ] メニューの [Microsoft Excel ヘルプ] を選択し、Office アシスタントまたは応答ウィザードで条件に基づいて値を計算する方法を入力して、[検索] を選択します。