试试……
=AVERAGE(N(OFFSET(INDIRECT("'"&{"Sheet1","Sheet2"}&"'!A1"),0,COLUMN(A1)*2-1)))
或
=AVERAGE(N(OFFSET(INDIRECT("'"&$G$2:$G$3&"'!A1"),0,COLUMN(A1)*2-1)))
...其中 G2:G3 包含工作表名称。注意第二个公式需要用CONTROL+SHIFT+ENTER确认,而不仅仅是ENTER。
希望这会有所帮助!
首次编辑
虽然仍然需要数组公式,但您可以避免使用 CONTROL+SHIFT+ENTER 确认公式,并且可以避免在单元格区域中列出工作表名称。
1) 首先定义名称SheetNames如下...
Refers to: ={"Instrument Partners","Supply Partners","Repair Partners","Wholesale Partners"}
2) 那就试试……
=AVERAGE(INDEX(N(OFFSET(INDIRECT("'"&SheetNames&"'!A1"),0,COLUMN(A1)*2-2)),0))
...只需要通过ENTER确认即可。
第二次编辑
"'"&SheetNames&"'!A1" 返回以下文本值数组...
"'Instrument Partners'!A1"
"'Supply Partners'!A1"
etc...
这个文本值数组被传递给 INDIRECT,它返回以下引用数组...
'Instrument Partners'!A1
'Supply Partners'!A1
etc...
反过来,这个引用数组被传递给OFFSET,它也根据行和列偏移返回一个引用数组...
OFFSET('Instrument Partners'!A1,0,COLUMN(A1)*2-2) --> 'Instrument Partners'!A1
OFFSET('Supply Partners'!A1,0,COLUMN(A1)*2-2) --> 'Supply Partners'!A1
etc...
然后我们通过将这个引用数组传递给 N() 函数来检索值...
N('Instrument Partners'!A1) --> returns actual value from the cell reference
N('Supply Partners'!A1) --> returns actual value from the cell reference
etc...
然后我们将这个值数组传递给 INDEX 函数,该函数返回一个值数组并允许只使用 ENTER 确认公式,而不是 CONTROL+SHIFT+ENTER。
最后,值数组被传递给 AVERAGE 函数,该函数返回实际平均值。