![如何对 Excel 中额外列或单元格中定义的列列表求和](https://linux22.com/image/1391934/%E5%A6%82%E4%BD%95%E5%AF%B9%20Excel%20%E4%B8%AD%E9%A2%9D%E5%A4%96%E5%88%97%E6%88%96%E5%8D%95%E5%85%83%E6%A0%BC%E4%B8%AD%E5%AE%9A%E4%B9%89%E7%9A%84%E5%88%97%E5%88%97%E8%A1%A8%E6%B1%82%E5%92%8C.png)
假设 A、B 和 C 列包含数字。如果这些列中的所有内容列在额外的列或单元格中,我想将它们相加。要相加的列可以位于电子表格中的任何位置。而且这必须是一个函数,而不是 VBA 脚本。
例如,D 列可能包含包含“A”和“C”的单元格,或者可能包含“A, C”的单个单元格。因此,我的函数 (E2) 将输出 A 列和 C 列值的总和。
A B C D E
1 4 7 A 30
2 5 8 C
3 6 9
为了增加附加复杂度,我希望总和是 SUMIF,以便根据匹配条件过滤出 A、B 和 C 列中的行。因此,在下面的示例中,我用颜色 (F) 对 A、B 和 C 列中的行进行分类。E 现在显示两个总和 - A 和 C 列的总计(类别为红色 (E2))和类别为绿色 (E3) 的总和。我完全希望 E2 和 E3 中的公式不同,以便指定不同的匹配条件。
A B C D E F
1 4 7 A 18 red
2 5 8 C 12 red
3 6 9 green
谢谢。
答案1
如果我理解正确的话,我不认为 SUMIF 是可行的方法。
我会在你的 D 和 E 之间添加一个辅助列,如下所示:
A B C D E F
1 4 7 A x 30
2 5 8 C x
3 6 9 x
在 E 列中,我添加了“x”作为占位符,输入此公式(在单元格 E2 中并向下复制):
=IFERROR(SUM(INDIRECT(D2&":"&D2)),0)
这只是将您在 D 列中指定为条件的每列的总数相加。如果该行没有条件,则可以使用 IFERROR 调用的 fallback 0。
最后,在单元格 F2 中,您可以将所有这些小计相加:
=SUM(E:E)
您的最终表格将如下所示:
A B C D E F
1 4 7 A 6 30
2 5 8 C 24
3 6 9 0