たくさんの数字をリストする列があります。1 つの列の値の上位 30% の平均を選択するにはどうすればよいですか。
'Values'
10
9
8
7
6
5
4
3
2
1
したがって、上位 30% は '10, 9, 8' であり、平均は (10+9+8)/3 = 9 です。
たくさんの数字をリストする列があります。1 つの列の値の上位 30% の平均を選択するにはどうすればよいですか。
'Values'
10
9
8
7
6
5
4
3
2
1
したがって、上位 30% は '10, 9, 8' であり、平均は (10+9+8)/3 = 9 です。
エクセル2007以降をお使いの方は、=AVERAGEIF(A2:A10,">"&PERCENTILE(A2:A10,0.7))
Excelのどのバージョンでも、ショーンの提案と同じ行に沿ってSUMIF/COUNTIFのいずれかを使用できます。
=SUMIF(A1:A10,">"&PERCENTILE(A1:A10,0.7))/COUNTIF(A1:A10,">"&PERCENTILE(A1:A10,0.7))
または短い「配列式」
=AVERAGE(IF(A1:A10>PERCENTILE(A1:A10,0.7),A1:A10))
CTRL+SHIFT+ENTER で確定
これらはすべて同じ結果になるはずです
VBA を使用しない場合:
A列にデータを入れます。
この中間列 B を作成します。
B1=IF(RANK(A1,$A$1:$A$10)<=30*COUNT($A$1:$A$10)/(100), A1,0)
B2=IF(RANK(A2, ...
次に、この列を次のように平均化します。
=AVERAGEIF(B1:B10,">0")
あなたの与えられた例では、9を取得します。
列のタイトルを含めて次を選択することにより、式を使用せずにこれを行うこともできます。
データ > フィルター > 数値フィルター > 上位 10... (上位 30 パーセント)
列を強調表示して、合計、平均、カウント、最大を表示します。(表示されていない場合は、ステータスバーを右クリックして「平均」を選択してください。)
セルでフィルター処理された平均の結果が必要な場合は、使用できます=SUBTOTAL(1,A2:A11)