使用公式定义范围

lit*_*mus 3 range microsoft-excel

我的问题的一个简化版本是,在另一个名为Sheet2我的工作表上,我有我想要平均的数据:

=AVERAGE(Sheet2!$A$1:Sheet2!$A$100)
Run Code Online (Sandbox Code Playgroud)

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

=MID("ABCDEFGHIJKLMNOPQRSTUVWXYZ",4,1)
Run Code Online (Sandbox Code Playgroud)

这将输出D.

我的问题是不必写:

=AVERAGE(Sheet2!$D$1:Sheet2!$D$100)
Run Code Online (Sandbox Code Playgroud)

我想使用:

=AVERAGE(Sheet2!$MID("ABCDEFGHIJKLMNOPQRSTUVWXYZ",4,1)$1:Sheet2!$MID("ABCDEFGHIJKLMNOPQRSTUVWXYZ",4,1)$100)
Run Code Online (Sandbox Code Playgroud)

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

Sco*_*ner 5

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

=AVERAGE(INDEX(Sheet2!$A$1:$Z$100,0,4))
Run Code Online (Sandbox Code Playgroud)

0通知INDEX返回所有行和4是第4列。因此,将平均第 4 列中从 1 到 100 的所有行。

根据您的评论:

=AVERAGE(INDEX(Sheet2!$A$1:$Z$100,0,(COLUMN(A:A)-1)*3))
Run Code Online (Sandbox Code Playgroud)