Excel で averageif で subtotal を使用する方法
次の数式を使用して、Excel でSUBTOTAL関数とAVERAGE関数を組み合わせることができます。
=AVERAGE(IF(SUBTOTAL(2,OFFSET( C2 ,ROW( C2:C11 )-ROW( C2 ),0)),IF( B2:B11 ="Guard", C2:C11 )))
この特定の数式を使用すると、C2:C11 の範囲の値の平均を計算できます。この場合、範囲 B2:B11 の対応する値は、そのセル範囲が何らかの方法でフィルターされた後でも「Keep」と等しくなります。もう一つ。
次の例は、この公式を実際に使用する方法を示しています。
例: Excel で AVERAGEIF で SUBTOTAL を使用する方法
さまざまなバスケットボール選手に関する情報を含む次のデータセットがあるとします。
次に、データをフィルターして、ウェスタンカンファレンスのプレーヤーがいる行のみを表示しましょう。
これを行うには、セル範囲A1:C11を強調表示します。次に、上部のリボンに沿って[データ]タブをクリックし、 [フィルター]ボタンをクリックします。
次に、 [会議]の横にあるドロップダウン矢印をクリックし、[西]の横のボックスのみがオンになっていることを確認し、[ OK]をクリックします。
データは自動的にフィルタリングされ、 Conference 列がWestに等しい行のみを表示します。
AVERAGEIF()関数を使用して、Position 列の値が「Guard」に等しい Points 列の値の平均を計算しようとすると、実際には「Guard」に等しい行のポイントの平均が返されます。元のデータセット内:
代わりに、次の式を使用する必要があります。
=AVERAGE(IF(SUBTOTAL(2,OFFSET( C2 ,ROW( C2:C11 )-ROW( C2 ),0)),IF( B2:B11 ="Guard", C2:C11 )))
次のスクリーンショットは、この式を実際に使用する方法を示しています。
この式は、正しい平均値21.25を返します。
これが正しいことは、Position 列が「Guard」に等しい行のポイント値を手動で平均することで確認できます。
平均ガード ポイント: (12 + 28 + 30 + 15) / 4 = 21.25 。
追加リソース
次のチュートリアルでは、Excel で他の一般的な操作を実行する方法について説明します。
Excelでフィルターされた行を削除する方法
Excel でフィルターされた行をカウントする方法
Excelでフィルターされた行を追加する方法