如何创建能够从不同工作表中返回总计,平均值,计数,最小值,最大值等的公式?列(存在的)在其标题信息中是一致的,但是从一个表到下一个列,可以是或可以不同。假设我有7个数据选项卡,例如,它们中的一些或全部可能包含bean的列标题,但是列号在所有选项卡中可能存在也可能不一致(如果存在)。它们在工作表中的实际位置是完全动态的。
我的电子表格包含几个原始数据标签,我想在摘要/报告表中对其进行比较。我确信这可以做到,但我担心它远远超出了这个老大脑的能力。
我已经考虑并使用间接,索引,匹配玩弄了一堆公式而且无法理解。非常感谢您的帮助。感谢
答案 0 :(得分:2)
这是一个可能的功能解决方案。最终结果如下:
我们将使用四(4)个主要功能:
注意:如果您对如何使用这些功能有疑问,请点击链接
公式: 这是在单元格C4以上
=AVERAGE( INDIRECT( "'"& C$3 & "'!" & LEFT(ADDRESS(1,MATCH($E$2,INDIRECT("'"&C$3&"'!1:1"),0),4,1),1) & ":" & LEFT(ADDRESS(1,MATCH($E$2,INDIRECT("'"&C$3&"'!1:1"),0),4,1),1) ) )
编辑1:要处理26以上标题的评论,请更改此
LEFT(ADDRESS(1,MATCH($E$2,INDIRECT("'"&C$3&"'!1:1"),0),4,1),1)
到此:
SUBSTITUTE(ADDRESS(1,MATCH($E$2,INDIRECT("'"&C$3&"'!1:1"),0),4,1),"1","")
基本上做的是:
使用Bean
函数查找标题MATCH
所在的位置。为此,您必须使用INDIRECT
,因为您的工作表名称是动态的(在此示例中,您的工作表名称位于C3 - Data1
)。 (我假设你的所有标题都在第一行,我在那里使用1:1
)。 注意:在此示例中,Bean
位于Data1工作表的H列
MATCH($E$2,INDIRECT("'"&C$3&"'!1:1"),0) <~~ returns 8
找到它的位置后,我们需要获取整列地址,以便我们可以应用计数和求和函数(例如SUM,COUNT,AVERAGE
等...)。为此,我们使用ADDRESS
函数与LEFT
结合来获取列字母。
LEFT(ADDRESS(1,MATCH($E$2,INDIRECT("'"&C$3&"'!1:1"),0),4,1),1) <~~ returns H
然后我们重复该公式,并将其与:
相关联,以获取H:H
现在我们有了列地址,我们只需再次使用工作表名称连接它,并应用最终的INDIRECT
函数以及您选择的计数和/或求和函数。
C5
中总计的示例公式:
C6
中最大的示例公式:
最后,您所要做的就是将所有列中的公式复制到工作表名称。
只需在最后一个列旁边添加工作表名称并复制公式。就是这样。我希望这接近你想要的,我希望我使用的所有功能都可以在Excel 2000中使用。