从Excel中的多个工作表中返回数据

你如何创build公式,将返回不同工作表的总计,平均数,计数,最小值,最大值等? 列(存在)在它们的标题信息中是一致的,但是可能或不可能不同,从一个表到下一个,列号明智的。 比方说,我有7个数据选项卡,其中一些或全部数据可能包含bean的列标题,但列号可能在所有选项卡(如果存在)中可能一致,也可能不一致。 他们在工作表中的实际位置是完全dynamic的。

我的电子表格有几个原始数据标签,我想在摘要/报告表中比较。 我相信这是可以做到的,但恐怕这是远远超出了这个老大脑的能力。

我曾经想过,玩过一堆使用间接,索引,匹配的公式,只是无法弄清楚。 您的帮助将不胜感激。 谢谢

这是一个唯一的解决scheme。 最终结果如下所示:

在这里输入图像说明

我们将使用四(4)个主要function:

  1. 地址
  2. 间接
  3. 比赛
  4. 剩下

注意:如果您有关于如何使用这些function的问题, 点击链接

公式: 这是在单元格C4以上

 = AVERAGE(
         间接(
                   “'”&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”, “”)

基本上是这样做的:

  • 使用MATCH函数查找Bean所在位置。 要做到这一点,您将不得不使用INDIRECT因为您的工作表名称是dynamic的(在本例中,工作表名称在C3 – Data1 )。 (我假设你所有的标题都在第一行,我在那里使用1:1注意:在这个例子中, Bean在Data1表单的H列中

     MATCH($E$2,INDIRECT("'"&C$3&"'!1:1"),0) <~~ returns 8 
  • find它后,我们需要得到整个列地址,所以我们可以应用计数和求和function(例如SUM,COUNT,AVERAGE等)。 为此,我们使用ADDRESS函数与LEFT组合来获得列字母。

     LEFT(ADDRESS(1,MATCH($E$2,INDIRECT("'"&C$3&"'!1:1"),0),4,1),1) <~~ returns H 
  • 然后我们重复这个公式并把它连接起来:得到H:H

  • 现在我们有了列地址,我们只需再次将其与表格名称连接起来,并应用最终的INDIRECTfunction以及您所select的计数和/或求和function。

C5总计的样本公式:

在这里输入图像说明

C6Max的样本公式:

在这里输入图像说明

最后,你所要做的就是将公式复制到所有具有表名的列上。
只需在最后一个旁边添加表格名称并复制公式。 而已。 我希望这是接近你想要的,我希望我所使用的所有function都可以在Excel 2000中使用。