使用命名范围识别工作表以在 a 上使用 SUMIFS 添加数据数组

Using a Named Range to identify worksheets to use a SUMIFS on a to add an array of data

下面是我正在处理的 Google Sheet 的示例: https://docs.google.com/spreadsheets/d/1LDsfn_FMdUSfuFZAyuXf5gdlOSN9yLqhT1RY8aX7Nfs/edit?usp=sharing

在电子表格 团队总计 上,我试图根据日期、销售类型和从 [=27= 开始的计划类型计算所有销售额]第27行.

我 运行 遇到的问题是命名范围 Consultants 仅从命名范围的第一个单元格中提取数据 (Octo).我想要的是一个公式,它将从命名范围内的每个条目中提取选定范围的数据并将它们相加。

作为参考,我把正确的值应该从第33行开始。

我看到的最接近的例子来自这个网站:https://www.got-it.ai/solutions/excel-chat/excel-tutorial/sumif/sumif-across-multiple-sheets

但是,我遇到了同样的问题,即只有命名范围中的第一个单元格被拉出。

我觉得我遗漏了一些简单的东西,但我已经在脑海中反复思考了好几个小时,还是想不通。非常感谢任何帮助。

这将 return 总销售额:

=if(isna(ArrayFormula(QUERY({Lo!$A:$F; Tulio!$A:$F;Ya!$A:$F; Miguel!$A:$F;Kevin!$A:$F; Octo!$A:$F}, "select sum(Col6) where Col1=date '"&TEXT(A28,"yyyy-mm-dd")&"' label sum(Col6) ''",0)))=TRUE,0,ArrayFormula(QUERY({Lo!$A:$F; Tulio!$A:$F;Ya!$A:$F; Miguel!$A:$F;Kevin!$A:$F; Octo!$A:$F}, "select sum(Col6) where Col1=date '"&TEXT(A28,"yyyy-mm-dd")&"' label sum(Col6) ''",0)))

顺便说一句,我的总销售额为 0 美元、615.50 美元和 2,498.00 美元

在没有脚本的情况下从大量未知选项卡名称中提取数据的最佳方法是事先实际创建选项卡名称。在您的 sheet 上,您似乎是 anticipating/making space 的 21 名员工。如果我是你,我会再创建 15 个名为 Temp7、Temp8、Temp9... 等的选项卡。然后你可以 "hide" 这些选项卡。然后可以在您的总计部分中构建一个公式,该公式将使用数组文字和 QUERY( { } ) 轻松地将所有选项卡堆叠起来,为您添加总计,而无需您一直在经历的所有这些 INDIRECT() 废话从各个选项卡名称中提取。

如果我可以向您展示使总数易于计算的公式,您会感兴趣吗?

所以在尝试找出一种不使用迭代过程的方法之后,我折叠并这样做了:

=arrayformula(SUMIFS(INDIRECT("'"&$B&"'!F6:F100"),INDIRECT("'"&$B&"'!D6:D100"),$B,INDIRECT("'"&$B&"'!E6:E100"),E,INDIRECT("'"&$B&"'!A6:A100"),$A41)+
SUMIFS(INDIRECT("'"&$B&"'!F6:F100"),INDIRECT("'"&$B&"'!D6:D100"),$B,INDIRECT("'"&$B&"'!E6:E100"),E,INDIRECT("'"&$B&"'!A6:A100"),$A41)+
SUMIFS(INDIRECT("'"&$B&"'!F6:F100"),INDIRECT("'"&$B&"'!D6:D100"),$B,INDIRECT("'"&$B&"'!E6:E100"),E,INDIRECT("'"&$B&"'!A6:A100"),$A41)+
SUMIFS(INDIRECT("'"&$B&"'!F6:F100"),INDIRECT("'"&$B&"'!D6:D100"),$B,INDIRECT("'"&$B&"'!E6:E100"),E,INDIRECT("'"&$B&"'!A6:A100"),$A41)+
SUMIFS(INDIRECT("'"&$B&"'!F6:F100"),INDIRECT("'"&$B&"'!D6:D100"),$B,INDIRECT("'"&$B&"'!E6:E100"),E,INDIRECT("'"&$B&"'!A6:A100"),$A41)+
SUMIFS(INDIRECT("'"&$B&"'!F6:F100"),INDIRECT("'"&$B&"'!D6:D100"),$B,INDIRECT("'"&$B&"'!E6:E100"),E,INDIRECT("'"&$B&"'!A6:A100"),$A41))

这个公式让我可以轻松地将它剪切并粘贴到不同的单元格,并完成我需要的工作,同时仍然使用间接引用,这样我就可以在不破坏公式的情况下更改名称(假设我更改了工作表名称以及)。

我需要对其进行编辑以包括我可以预见的所有可能的工作表数量,但一旦完成,我就不必再修改名称了。

我对这个答案不满意,因为它创建了一个非常长且丑陋的公式,基本上重复相同的公式 20 次,但它确实有效。我觉得应该有一个简单的函数可以做到这一点。