我希望在我的电子表格中有一个列可以执行两项操作。
1)在有序列中,它将返回列包含指定值的范围。
2)它将在不同列中的相同范围内运行一个函数(即= SUM(),= AVERAGE()等)。
| NAME | VAL | FOO |
|-------|-----|-----|
| A | 3 | |
| A | 2 | |
| A | 4 | |
| A | 3 | |
| B | 2 | |
| B | 2 | |
| B | 1 | |
| C | 6 | |
| C | 5 | |
我想获得每个NAME的平均值。我希望结果是:
| NAME | VAL | FOO |
|-------|-----|-----|
| A | 3 | 3 |
| A | 2 | 3 |
| A | 4 | 3 |
| A | 3 | 3 |
| B | 2 | 1.7 |
| B | 2 | 1.7 |
| B | 1 | 1.7 |
| C | 6 | 5.5 |
| C | 5 | 5.5 |
另一个例子是获得每个NAME的VAL总和。
| NAME | VAL | FOO |
|-------|-----|-----|
| A | 3 | 12 |
| A | 2 | 12 |
| A | 4 | 12 |
| A | 3 | 12 |
| B | 2 | 5 |
| B | 2 | 5 |
| B | 1 | 5 |
| C | 6 | 11 |
| C | 5 | 11 |
答案 0 :(得分:1)
订购“NAME”可以轻松实现。如果“NAME”在A1
中。将此输入C2
作为总和,然后填写:
=IF(A2=A3,C3,SUMIF($A$2:A2,A2,$B$2:B2))
将此值输入C2
作为平均值,然后填写:
=IF(A2=A3,C3,AVERAGEIF($A$2:A2,A2,$B$2:B2))
请注意,在您填写之前,C2
中的结果将不是您想要的结果。
MAXIF更新
如果您没有Excel 2016,则必须使用数组公式(使用 ctrl提交 + shift + 输入 ):
=IF(A2=A3,C3,MAX(IF($A$2:A2=A2,$B$2:B2)))