6500 行以上、12 列にまたがるデータがあります。一部の列には 3 つの数値のセット (入力列) の値があり、他の列にはすべて一意の値 (出力列) があります。
特定の入力セットに基づいて一部の行をフィルター処理するために、入力列に Excel フィルターを使用しています。Excel のフィルターは、フィルターの条件を満たさない行を非表示にするだけだと思います。フィルター処理された出力列の平均を取得する必要があります。フィルター処理されたデータは行全体にわたって連続的または均一に配置されていないため、平均式を使用する範囲を (簡単に) 指定できません。
フィルタリングされた行の平均を取得するにはどうすればよいですか?
サンプルデータ -リンク
サンプルデータの説明 - 列 A と B (入力列) は、特定のセット (それぞれ {5,10,15} と {20,40,60}) から値を取得します。列 C と D (出力列) は、すべてのセルに一意の値を持ちます。次のようなフィルターを設定するとします。
列 A で、 を含むすべての行をフィルターしますvalue=5
。これにより、行 1、2、7、10 がフィルターされます。ここで、列 C と D の値のこれらのフィルターされた行の平均を取得したいと思います。
答え1
答えは です=SUBTOTAL(1,...)
。表示されているセルのみを考慮します。
例えば
=SUBTOTAL(1,C1:C12)
=SUBTOTAL(1,C:C)
=SUBTOTAL(1,D1:D12)
=SUBTOTAL(1,D:D)
SUBTOTAL は、さまざまな種類の集計計算 (SUM、AVERAGE、COUNT、MAX など) を実行できる関数です。また、手動で非表示にした値を含めるかどうかも選択できます。最初のパラメータは、必要な集計関数と、手動で非表示にした値を無視するかどうかを指定します。AVERAGE の場合、パラメータ値が の場合は1
非表示の値が含まれ、101
の場合は非表示の値が除外されます。フィルタによって非表示にされた値は常に除外されるため、この例では または1
のどちら101
でも機能します。連続していない範囲のリストを含めることもできます。単一の範囲指定に限定されません。SUBTOTAL で実行できる操作の詳細については、を参照してください。このリンク
答え2
F1 を押し=IF($D$16=A1,C1,"")
て F12 までドラッグします。
次に=AVERAGE(F:F)
E16を入れます。
そして、D16に値「5」を入力します。
終わり。
p/s: 複数の条件を満たす必要がある場合は、if()、or()、または and() を使用します。次に、average() を使用して目的の結果を取得します。
それが役に立てば幸い。 ( :