次の方法で共有


Excel の SUM+IF ステートメントで論理 AND または OR を使用する方法

概要

Microsoft Excel では、論理関数 AND や OR を SUM+IF ステートメント内で使用して複数の条件の範囲をテストすると、正常に機能しない場合があります。 入れ子になった 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 キーを押します。
  • 配列は列全体を参照できません。

このメソッドでは、ある論理テストの結果を別の論理テストで乗算して、SUM 関数に TRUE と FALSE を返します。 これらは次の値と等しい場合があります。

TRUE*TRUE=1
TRUE*FALSE=0
FALSE*TRUE=0
FALSE*FALSE=0

上記のメソッドは、範囲 A1:A10 内で、両方のテストが TRUE と評価されるセルの数をカウントします。 対応するセル (B1:B10 など) の値を合計するには、次のように数式を変更します。

=SUM(IF((A1:A10>=1)*(A1:A10<=10),B1:B10,0))

同様に、OR を SUM+IF ステートメントに実装できます。 これを行うには、乗算記号 (*) をプラス記号 (+) に置き換えて、上記の数式を変更します。 これにより、次の一般式が得られます。

=SUM(IF((Test1)+(Test2)+...+(Testn),1,0))

関連情報

条件に基づいて値を計算する方法の詳細については、[ヘルプ] メニューの [Microsoft Excel ヘルプ] をクリックし、Office アシスタントまたはアンサー ウィザードで条件に基づいて値を計算する方法について入力し、[検索] をクリックしてトピックを表示します。