我的問題的簡化版本是,在另一張名為的工作表上,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!
?
答案1
您可以使用間接:
=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))
告訴0
INDEX 傳回所有行,並且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
是不穩定的,會增加工作簿中的計算負載