在 Sheet1 A1 上有一个带有下拉菜单的单元格,您可以在其中选择一个图块。
有时,此标题可能会出现或不会出现在 Sheet2:Sheet7 中,其下方有 30 行数据。
我希望当我更改 A1 中 Sheet1 上的图块时,该工作表会在所有 Sheet 2-7 中找到匹配的标题,并对其他工作表下方 30 行中的所有相关数据点求和。
例如:
如果从下拉列表中选择“Sheet1 A1”中的“标题 1”,则“Sheet1 A2:A31”是 Sheets 2-7 中所有具有匹配“A1”的“A2:A31”单元格的总和。请注意,在 Sheets 2-7 中,匹配数据可能不在 A 列中,而可能位于工作表的任何位置。如果“标题 1”未找到匹配项,则值为 0
答案1
将 SUMIF 和 INDIRECT 与 SUMPRODUCT 结合起来可以解决问题:
:警告:
- 由于 OP 没有分享任何数据集/屏幕截图,因此我假设了数据。
- 为了正确理解和可视化,我使用了较小的数据集。
- 我的解决方案包括标准方法,对工作表中的值进行求和,有和没有下拉菜单。
- 也许其他人会发布更好的方法。
- 此外,对于许多工作表和更大的数据集,VBA 应该是一个不错的选择。
怎么运行的:
在范围 B31:B31 中输入工作表名称。
单元格 C38 中的第一个公式:
=SUMPRODUCT((SUMIF(INDIRECT("'"&$B$31:$B$32&"'!"&"$b$61:$b$64"),B38,INDIRECT("'"&$B$31:$B$32&"'!"&"$c$61:$c$64"))+SUMIF(INDIRECT("'"&$B$31:$B$32&"'!"&"$s$2:$s$5"),B38,INDIRECT("'"&$B$31:$B$32&"'!"&"$t$2:$t$5"))))
在单元格 E38 中创建下拉菜单:
单元格 G38 中的公式:
=SUMPRODUCT((SUMIF(INDIRECT("'"&$B$31:$B$32&"'!"&"$b$61:$b$64"),$E$38,INDIRECT("'"&$B$31:$B$32&"'!"&"$c$61:$c$64"))+SUMIF(INDIRECT("'"&$B$31:$B$32&"'!"&"$s$2:$s$5"),$E$38,INDIRECT("'"&$B$31:$B$32&"'!"&"$t$2:$t$5"))))
注意:
- 根据需要调整公式中的单元格引用。