Excelでifでsubtotalを使用するにはどうすればよいですか?

この公式はまさに魔法です。

Excel で IF (条件) を使用して SUBTOTAL 式を作成する場合は、いくつかの関数を使用する必要があります。しかし、その前に、この例のデータを理解しましょう。

if を含む小計

上の例には 3 つの列があります。

  • 名前
  • 時代のスラブ
  • 性別

また、[年齢スラブ] 列からスラブをフィルターすると、セル F1 に女性の数が表示されます。つまり、条件付きでフィルターされた値の数を表示する数式があるということになります。

式は次のとおりです。

 =SUMPRODUCT((C2:C41=E1)*(SUBTOTAL(3,OFFSET(C2,ROW(C2:C41)-MIN(ROW(C2:C41)),0))))

SUBTOTAL IF 式を理解する

この数式では、SUMPRODUCT、SUBTOTAL、OFFSET、ROW、MAX の 5 つの関数を使用します。したがって、この式を理解するには、それをいくつかの部分に分割する必要があります。

1.LINE(C2:C41)-2.0)

式のこの部分では、MIN 関数と ROW 関数を使用します。

min-and-row関数
  • ROW では、「Gender」列を参照しており、行番号の配列を返します。
  • その後、MIN はその配列番号または行番号を取得し、最小の行番号を返します。式のこの部分に 2 があるのはそのためです。

2.LINE(C2:C41)

この部分には、行番号の配列を返す ROW 関数のみがあります。

行番号の配列を返す行関数

3. オフセット(C2,LINE(C2:C41)-MIN(LINE(C2:C41)),0)

OFFSET 関数が追加されました。これは、セル参照を開始点として使用して範囲への参照を作成するのに役立ちます。参照の引数では、性別の範囲が始まる最初のセルであるセル C2 を参照しました。

オフセット関数

行の引数には、最初の 2 つの部分で説明した式のこの部分が含まれています。その後、cols 引数に 0 を使用しました。これで、OFFSET は「Sex」列のすべての値の配列を返します。

性別列のオフセット戻り値

4. SUBTOTAL(3,OFFSET(C2,LINE(C2:C41)-MIN(LINE(C2:C41)),0))

SUBTOTAL の OFFSET によって返された配列を使用しました。そして、function_num では 3 を使用しました。これは、SUBTOTAL に計算に COUNTA 関数を使用するように指示します。

「年齢スラブ」列でフィルターを使用すると、数式の小計部分は 0 と 1 を含む配列を返します。

使用する小計

この表では、フィルターを適用した値に相当する値が 1 になっています。以下の例を参照してください。

適用された値と同等の値

5. (C2:C41=E1)

数式のこの部分は、条件をテストして配列を返します。この条件では、範囲値が「女性」かどうかをテストし、配列で TRUE と FALSE を返します。

配列内の true と false を返す

このテーブルでは、「女性」の値が TRUE、その他の値が FALSE になっています。

7. 最後の部分

最終的に、SUMPRODUCT には 2 つのテーブルができます。また、これらの配列の間にはアスタリスク演算子もあります。

合計2枚の絵画が制作されました

2 つのテーブルを掛け合わせると、0 と 1 を含む 1 つのテーブルが得られます。このテーブルでは、1 は性別の値「女性」を表し、21 ~ 30 は「年齢スラブ」を表します。

0 と 1 を含む単一の配列

最終的に、SUMPRODUCT はこの配列を使用して合計を返します。この合計は、[年齢範囲] 列を 21 ~ 30 でフィルターした場合の、性別列の値が「女性」であるセルの数です。

sumproduct は配列を使用して合計を返します

Excelファイルを取得する

ダウンロード
Excelの数式一覧

関連する式

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です