0

年齢と特定の値をペアにする Excel の 2 列があります。

34 107.8
22 5
22 97
45 76.5
46 16

任意のグループごとに平均値を表示するテーブル/チャート/ピボットを作成する必要があります。まあ言ってみれば:

BRACKET   VALUE AVG
0-39      ...
40        ...
41        ...
42-60     ...
4

2 に答える 2

1

列 A に年齢が格納され、列 B に値が格納されているとします (2 ~ 19 行に を配置し、それに応じて調整すると仮定します)。

各バケットの最小年齢 (0、40、41、42、60) を列 D に格納し、最後の値の下に非常に高い値 (例: 150) を追加します。

Excel 2003 のソリューション: E2 に次の数式を入力し、コピーします。

=IF(SUMPRODUCT(($A2:$A19>=D2)*(A2:A19<D3)),SUMPRODUCT($B2:$B19*($A2:$A19>=D2)*(A2:A19<D3))/SUMPRODUCT(($A2:$A19>=D2)*(A2:A19<D3)),"No values")

Excel 2007 以降のソリューション: E2 に次の数式を入力し、コピーします。

=IFERROR(AVERAGEIFS($B:$B,$A:$A,">="&D2,$A:$A,"<"&D3),"No values")
于 2013-03-29T22:55:45.370 に答える
1

Peterが示唆するように、D2:D10に「下限リスト」がある場合、E2のこの「配列式」も機能します。

=AVERAGE(IF(LOOKUP($A$2:$A$19,D$2:D$10)=D2,B$2:B$19))

CTRL+ SHIFT+で確認してENTER、{ や } のような中かっこが数式バーの数式の周りに表示されるようにします...そして列を下にコピーします

#DIV/0!そのブラケットに値が存在しない場合にエラーの代わりにゼロを取得するには、次のように変更します

=LOOKUP(10^10,IF({1,0},0,AVERAGE(IF(LOOKUP($A$2:$A$19,D$2:D$10)=D2,B$2:B$19))))

于 2013-03-30T00:21:22.237 に答える