使用公式定义范围

使用公式定义范围

我的问题的一个简化版本是,在另一张名为“ Sheet2I have data that I want to average”的工作表上,我有想要求平均值的数据:

=AVERAGE(Sheet2!$A$1:Sheet2!$A$100)

根据上述代码的使用位置,我需要将列替换A为另一个字母,例如 column D。为此,我创建了一个函数:

=MID("ABCDEFGHIJKLMNOPQRSTUVWXYZ",4,1)

这将输出D

我的问题是,不必写:

=AVERAGE(Sheet2!$D$1:Sheet2!$D$100)

我想要使​​用:

=AVERAGE(Sheet2!$MID("ABCDEFGHIJKLMNOPQRSTUVWXYZ",4,1)$1:Sheet2!$MID("ABCDEFGHIJKLMNOPQRSTUVWXYZ",4,1)$100)

但 Excel 不接受这一点。如何使用 旁边的函数Sheet2!

答案1

您可以使用 INDIRECT :

=AVERAGE(INDIRECT ("Sheet2!$" & MID("ABCDEFGHIJKLMNOPQRSTUVWXYZ",4,1)&"$1:Sheet2!$" & MID("ABCDEFGHIJKLMNOPQRSTUVWXYZ",4,1)&"$100"))

答案2

OFFSET 和 INDIRECT 是不稳定的,我们可以使用 INDEX

=AVERAGE(INDEX(Sheet2!$A$1:$Z$100,0,4))

告诉0INDEX 返回所有行,并且4是第 4 列。因此,第 4 列中从 1 到 100 的所有行都将被平均。

根据您的评论:

=AVERAGE(INDEX(Sheet2!$A$1:$Z$100,0,(COLUMN(A:A)-1)*3))

答案3

以下是一种方法:

=AVERAGE(OFFSET(Sheet2!$A:$A,0,(COLUMN()-1)*3))

请注意,这OFFSET是不稳定的,会增加工作簿中的计算负荷

相关内容