我的问题的一个简化版本是,在另一个名为Sheet2
我的工作表上,我有想要平均的数据:
=AVERAGE(Sheet2!$A$1:Sheet2!$A$100)
根据上面代码的使用位置,我需要将 column 换成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!
?
OFFSET 和 INDIRECT 是不稳定的,我们可以使用 INDEX
0
告诉 INDEX 返回所有行,并且是第4
4 列。因此,将平均第 4 列中从 1 到 100 的所有行。根据您的评论:
这是一种方法:
请注意,这
OFFSET
是不稳定的,会增加工作簿中的计算负载您可以使用 INDIRECT :
=AVERAGE(INDIRECT ("Sheet2!$" & MID("ABCDEFGHIJKLMNOPQRSTUVWXYZ",4,1)&"$1:Sheet2!$" & MID("ABCDEFGHIJKLMNOPQRSTUVWXYZ",4,1)&"$100"))