Vba 跨多个工作表对无序数据求和

Vba 跨多个工作表对无序数据求和,vba,excel-formula,Vba,Excel Formula,我认为sumproduct sumifs indirect是我所需要的,但我不知道如何构建它; 我有一本记录志愿者时间的工作手册 我将每月12小时的工作表/表格汇总为FY总计工作表/表格,其中包含志愿者的工作小时数。因此,我想在其中使用公式的表/表格是FY TOTALS 工作手册由14页组成: Sheet志愿者有一个表格TBL_志愿者,其中包含关于志愿者的数据,前3列在所有13张表格上重复,12个月和1个财年总计 A5[状态]B5[姓氏]C5[姓氏] 月表上有上述字段,后面有5个类别,每个类别每

我认为sumproduct sumifs indirect是我所需要的,但我不知道如何构建它; 我有一本记录志愿者时间的工作手册

我将每月12小时的工作表/表格汇总为FY总计工作表/表格,其中包含志愿者的工作小时数。因此,我想在其中使用公式的表/表格是FY TOTALS

工作手册由14页组成: Sheet志愿者有一个表格TBL_志愿者,其中包含关于志愿者的数据,前3列在所有13张表格上重复,12个月和1个财年总计 A5[状态]B5[姓氏]C5[姓氏]

月表上有上述字段,后面有5个类别,每个类别每个志愿者有小时数

表/表格FY总计与每月相同,但我希望分类汇总每个志愿者的所有12个月

所以我需要匹配[LastName][FirstName]的条件和[category]D:I中的总和值


我可以发送文件的副本,但不能在这里加载图像

您可以使用多个合并范围

注意,我有四个不同的范围。这些可能在不同的工作表中,名称的顺序也不一定相同。已创建一个数据透视表,按要求汇总每个人的工作小时数。在这个例子中,它们恰好是相同的

怎么做

按Alt+D+P windows或cmd+Alt+P mac 选择多个合并范围,然后单击“下一步” 选择“为我创建单页字段”,然后选择“下一步” 逐个添加每个范围,然后完成 更新

根据您的评论,您可以对数据透视表做更多的事情—您可以通过创建自己的页面字段来分离数据。这样做,而不是上面的步骤3

选择“我将创建页面字段”,然后选择“下一步” 对于您选择和添加的每个范围,单击“1”页面字段并键入该数据的说明,例如2016年数据或2017年数据 可选字段将自动放入报告过滤器字段。您可能希望将其拖动到行下方的“行标签”字段中,以获得下面的视图 然后,您可以看到数据透视表中使用的不同字段的拆分-黄色表示我有2016年的数据,您可以看到数据透视表中的字段已拆分


我可以澄清你的问题吗?您是否有12张具有相同设置的工作表,并且您只是尝试对所有12张工作表中的值进行求和?是的,我尝试对所有工作表进行求和,但如果工作表排序不同,则相同的名称不在同一行中,我会得到错误的志愿者数据。因此,我需要匹配每张表中的名字和姓氏列B/C,并从列中添加值。我认为这可以很好地完成,而不需要复杂的公式。我已经发布了一个答案-让我知道它是否适用于你吗?我很想使用pivot,但是…我还有一个称为终生小时的值,我需要添加到组合中。我不知道如何将此值包含在透视图中…我很想使用透视图进行此操作,但我还需要将上一年的生命周期小时数添加到汇总的年度小时数中,并且不知道如何在透视图中执行此操作…我可以尝试添加另一张仅具有生命周期的图纸,并将其添加到组合中?我还必须得到分类小计计数。有5个。但愿我能在这里抓拍一下……我更新了我的答案,只是为了说明如何潜在地增加生命周期,我想这会奏效吗?我整天都在一个数据透视表上工作!我无法将其计入行列总数,因为我在列字段Iam中没有值,因此只能从每张工作表中添加一列。。。我无法将生存期日期添加到混合中,因为我无法让它识别为数字,它们是手动添加的常量。所以我回到了公式,这是我最后得到的公式,这是公式,但我仍然有一个问题=SumProductSumiIndirect'&A5:A16&'!A4:A500、C7、间接’和A5:A16&’!H4:H500当我在列中填充时,它不仅改变了我想要的标准,而且还改变了图纸参考位置A5:A16,因此我不得不手动更改400个条目以更正它,但现在我认为新添加的行不会自动解析,我如何使填充不改变该值?修复!我将对图纸名称的引用更改为一个范围。直到我将数据引用中的范围转换为transposeliste$3:E$14,它才起作用。我不知道为什么,但看看其他帖子,这个问题出现了。但是当我回去看的时候,转置不见了=SumProductSumiIndirect'&SheetList&'!A4:A500、B4、间接和图纸清单&!H4:H500现在如果我可以引用单元格A4:A500和H4:H500作为表格范围,我就不会有500的上限。。。。。。。。但这让我很开心;