对不同工作表集合中的单元格进行求和

对不同工作表集合中的单元格进行求和

我有一本包含 30 多张工作表的工作簿,每张工作表都包含一个用于特定实体的相同财务数据模板。每个实体都被指定为自有、管理或设施组合。投资组合名称存在于 A3 中的每个模板上,以及包含第 1 列中的工作表名称列表和第 2 列中分配的投资组合的参考数据表上。

我也有一张具有相同模板的摘要表。这就是我的问题所在。

我希望能够根据 3 个投资组合的下拉列表对其他工作表中的各个单元格进行可变求和。例如,如果您选择“托管”,我希望模板填写所有托管工作表的总和、“自有”工作表的总和,等等。

我弄乱了 3D sumif,这是我在模板的其他地方使用过的东西,但对于这个工作表,我不知道如何让它只对符合条件的选项卡中的值求和。我希望它是像 Sumif(SheetStart:SheetEnd!G12,Sheetstart:SheetEnd!A3,D3) 这样简单的函数,但显然不是那么简单。我还没有得到足够多的公式来发挥作用,值得一提。

我使用的是 2207 版 (Office 365)。
摘要选项卡示例:
摘要选项卡的示例

答案1

所以,这就是我想到的办法,我认为它能满足你的要求。必须先建立一个测试表,以确保这种方法有效。

  • 假设选择器条件下拉列表位于本地单元格 D3 中
  • 假设每张表的投资组合标识符在 A3 中
  • 假设所有选项卡值单元格都对齐,包括求和页面,这意味着 G12 中求和页面上的公式是正确详细信息页面上的 G12 的总和。
  • 假设数据页是连续的但不需要按任何顺序排序。

然后将此公式放在求和页 G12 中,并向下/向右填充。G12 引用应根据需要递增。

=LET(
portfolioArray, --($D$3=VSTACK(Sheet1:Sheet4!$A$3)),
valueArray, VSTACK(Sheet1:Sheet4!G12),
SUMPRODUCT(valueArray,portfolioArray)
)
  • 这将创建一个数组“valueArray”,其中包含每个单元格的所有 30 多个值。
  • 这将创建一个由 30+ 个 1 和 0 组成的数组“portfolioArray”,其中 1 代表哪个选项卡的 A3 值与选择器匹配。
  • 然后对两个数组进行求和,它们应该都是相同的 30+:1 维度。

我把这个放在 LET 中以便于理解,但它也可以很简单地写成:

=SUMPRODUCT(VSTACK(Sheet1:Sheet4!G12),--($D$3=VSTACK(Sheet1:Sheet4!$A$3)))

编辑:但正如我在评论中提到的那样,这也可能很容易:

=SUMIF(VSTACK(Sheet1:Sheet4!$A$3), $D$3, VSTACK(Sheet1:Sheet4!G12) )

我的下一步努力是将其放入 LET(MAKAEARRAY()) 模型中,以便投资组合数组仅计算一次,但这需要更多的摆弄。

真的想要避免间接开销,所以我的想法是收集所有 30 个数据点并用逻辑对它们进行过滤,而不是使用逻辑创建对所需工作表的引用序列,每个工作表都通过间接方式拉入。

希望这可以帮助!

相关内容