确定列中一个值的范围,用于在另一个

时间:2018-06-08 18:56:57

标签: excel excel-formula

摘要

我希望在我的电子表格中有一个列可以执行两项操作。

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 |

1 个答案:

答案 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)))