多表中同时对各分表分别求平均值,就用indirect!
具体应用
如下动图所示,工作簿中共有7个工作表。现在的要求是对1-6这6个工作表的A列分别求平均值,并把结果放到平均值表的B3:G3中。
B2&"!a:a"返回的结果为"1!a:a",它是文本型的单元格引用,还不是真正的引用。在它的外面套个indirect函数,就会转为真正的单元格引用。
也就是说,INDIRECT(B2&"!a:a")返回的结果才是真正的单元格引用,代表1工作表的A列这个区域。然后在最外层套个average,就是对1工作表的A列求平均值。
这里要注意的一个问题是:工作表名和单元格区域的写法。工作表名最好用单引号包裹,后面连!,最后连单元格区域。最后的结构如下:INDIRECT("'工作表名'!单元格区域")。
如果工作表名是变量的话,可以改为下面的写法:INDIRECT("'"&B2&"'!a:a")
上面还算是比较简单的,一次只引用一个工作表的A列,然后对其求平均值。其实我们还可以一次同时引用多个工作表的A列,然后分别对这些表的A列求平均值,最后一次性输出结果。这样的话就用到indirect的多维引用。
B2:G2&"!a:a"返回的结果为{"1!a:a","2!a:a","3!a:a","4!a:a","5!a:a","6!a:a"},是一个数组,里面有6个元素,分别是文本型的单元格引用。
INDIRECT(B2:G2&"!a:a")这部分是在上一步的外面套了个indirect函数,这样的话就返回真正的单元格引用。只不过现在不只返回一个区域,而是返回6个区域,分别是这6个表的A列,这就是多维引用。
今天的分享就到这里,希望对你有所帮助。不要忘记一键三连哦。
https://pan.baidu.com/s/1DmGju2dTpDa-16HC6FUscQ
赞 (0)