确定列中一个值的范围,用于在另一个值中运行相同范围的函数

问题描述 投票:0回答:1

摘要

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

1)在有序列中,它将返回列包含指定值的范围。

2)它将在不同列中的相同范围上运行一个函数(即= SUM(),= AVERAGE()等)。

例子

Original

| NAME  | VAL | FOO |
|-------|-----|-----|  
|   A   |  3  |     |  
|   A   |  2  |     |  
|   A   |  4  |     |  
|   A   |  3  |     |  
|   B   |  2  |     |  
|   B   |  2  |     |  
|   B   |  1  |     |  
|   C   |  6  |     |  
|   C   |  5  |     |

Average

我想得到每个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 |

Sum

另一个例子是获得每个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 |
excel excel-formula
1个回答
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 + enter进行提交):

=IF(A2=A3,C3,MAX(IF($A$2:A2=A2,$B$2:B2)))
© www.soinside.com 2019 - 2024. All rights reserved.