Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 计算多张图纸上的总值_Excel_Excel Formula_Count_Excel Indirect - Fatal编程技术网

Excel 计算多张图纸上的总值

Excel 计算多张图纸上的总值,excel,excel-formula,count,excel-indirect,Excel,Excel Formula,Count,Excel Indirect,我的Excel文件中有以下数据: 第1页 Product Quantity Alpha 100 Bravo 200 Charlie 300 第2页 Product Quantity Bravo 100 Delta 200 第3页 Product Quantity Charlie 100 Delta 200 我想获得多个工作表中的所有记录,并制作一个Excel工作表,其中总

我的Excel文件中有以下数据:

第1页

Product      Quantity
Alpha        100
Bravo        200
Charlie      300
第2页

Product      Quantity
Bravo        100
Delta        200
第3页

Product      Quantity
Charlie      100
Delta        200
我想获得多个工作表中的所有记录,并制作一个Excel工作表,其中总结了顶级产品:

摘要

Product      Quantity
Charlie      400
Delta        400
Bravo        300
Alpha        100

有什么办法吗?

创建一个包含多个合并范围的数据透视表。有关图像示例(但您的案例更简单),请参见。

假设:

1) 每个选项卡中的数据从A列到B列的第2行开始,产品在A列

2) 在这些选项卡中,数据均未超出第1000行(如果超出,则将该值的公式(和命名范围)中的所有引用更改为适当较大的数字)

3) 任何选项卡中的数据之间都没有空白单元格

4) 您正在使用Excel 2007或更高版本

然后,首先,在汇总表的某个位置,以水平范围列出所有相关的工作表名称(不包括汇总表),例如D1:F1,确保列出的工作表名称与选项卡上显示的名称完全一致

其次,转到名称管理器并定义两个新名称:

姓名:Arry1

指:=MMULT(转置(COUNTIFS(间接(“'”和$D$1:$F$1&“!A2:A1000”)、A$2:A2、间接(“'”和$D$1:$F$1&“!A2:A1000”)、行(间接(“&COUNTA(A$2:A2))^0)

姓名:Arry2

指:=小计(3,间接(“'”和$D$1:$F$1和“!A2:A1000”))

(在创建这些公式时,请确保它们与此处完全相同。有时,如果粘贴进去,可能会在公式周围加上引号,这是不正确的。)

在汇总表的单元格A2中输入:

=第1页!A2

(或无论第一张纸的名称是什么。)

然后,在汇总表的A3中,这个数组公式**

=IFEROR(索引(间接(“”)和索引($D$1:$F$1,匹配(FALSE,Arry1=TRANSPOSE(Arry2),0))和“!A2:A1000”)、匹配(0,COUNTIF(A$2:A2,间接(“”)和索引($D$1:$F$1,匹配(FALSE,Arry1=TRANSPOSE(Arry2),0))和“!A2:A1000”)、0”)、”)

抄下来,直到你开始得到空白

在B2中(非阵列):

=IF(A2=“”,”,SUMPRODUCT(SUMIF(间接(“”&$D$1:$F$1&“!A:A”)),A2,间接(“”&$D$1:$F$1&“!B:B”))

同样,抄写下来,直到你开始得到空白

问候


**数组公式的输入方式与“标准”公式不同。不要只按ENTER键,而是先按住CTRL和SHIFT键,然后再按ENTER键。如果操作正确,您会注意到Excel在公式周围放了一个大括号{}(不过不要尝试自己手动插入这些括号)。

编辑:比将工作表名称放在单元格中更好的方法是将它们作为另一个命名范围,例如工作表:

={“Sheet1”、“Sheet2”、“Sheet3”}

公式如下:

=IFEROR(索引(间接(“”)和索引(表,匹配(FALSE,Arry1=TRANSPOSE(Arry2),0))和“!A2:A1000”)、匹配(0,COUNTIF(A$2:A2,间接(“”)和索引(表,匹配(FALSE,Arry1=TRANSPOSE(Arry2),0))和“!A2:A1000”)、0”)、0)


关于

对于2K rep,您应该知道,问题至少应该显示您尝试过的公式或代码以及失败的地方。您是否确实需要为汇总表创建唯一的产品列表以及总数,或者您是否可以自己创建该列表,那么需要帮助才能得到总数吗?@XORLX我需要一个独特的产品列表。所有工作表与显示的记录数不匹配。它们是否至少都在每张工作表的同一列中,例如A列?@XORLX Yes。只有列A和B存在。编辑:与其将工作表名称放在单元格中,更好的做法是同时为这些名称使用命名范围,例如工作表:={“Sheet1”、“Sheet2”、“Sheet3”}