Excel,表格中特定列的平均值

Excel,表格中特定列的平均值

我正在尝试计算数值表中一列的平均值。

它是这样的:

Hi   Hello  Hey
1  |  2   | 3
1  |  2   | 3
1  |  2   | 3

我正在尝试获取其中一列的平均值,但具体是哪一列取决于另一个单元格,它会告诉我“Hi”、“Hello”或“Hey”。假设这样的单元格是 K5

所以我想到了类似 averageif(A1:C1;"="&K5;A2:C4) 的方法。当 K5 为 Hi 时,公式返回值 1。但是当我更改 Hi 列中的值时,结果如下:

Hi   Hello  Hey
1  |  2   | 3
7  |  2   | 3
1  |  2   | 3

公式仍然显示 1(应该是 3),因此它只考虑第二行。

如果 K5 为 Hi,我该如何计算 A2:A4 的平均值;如果 K5 为 Hello,我该如何计算 B2:B4 的平均值;如果 K5 为 Hey,我该如何计算 C2:C4 的平均值?

谢谢。

答案1

AverageIf并非旨在评估整个表并仅返回一列。要实现您描述的结果,您可以使用类似

=AVERAGE(IF(A1:C1=K5,A2:C4,""))

Ctrl这是一个数组公式,必须用++Shift来确认Enter

答案2

我会给你首先想到的两种方法。

=average(offset(A2:C2,0,match(K5,A1:C1,0)-1))

偏移会改变您的范围,匹配将在单元格 A1:C1 中找到 K5 并返回它是哪个单元格 (1,2,3) 减一以使行正确。

或者,如果您将数据存储为表格,这将找到 K5 中具有标题名称的任何列的平均值。

=average(INDIRECT("Table1["&K5&"]"))

间接基本上允许您使用变量来定义单元格引用。

答案3

如果您使用 Excel 中的表格功能将所需数据制作成表格
突出显示所有内容并按CTRL+T)然后您可以使用以下方法计算平均值:

=AVERAGE([Hi]) 

假设您的表头名为Hi

您可以在更大的函数中使用它,例如

=100 - ([@hi]) / ( MAX([hi]) + AVERAGE([hi]) ) 

或更多,如果您想进一步扩展它。

=([@hi])将给出该行的当前hi值。其余部分非常容易理解。

相关内容