VBA替代sumproduct功能

时间:2016-07-28 06:38:39

标签: excel vba excel-vba excel-formula sum

我尝试使用SUMIFS,但它失败了,因为公式不允许我使用来自相同标准范围的两个不同的标准(当然这是有道理的),所以我环顾互联网并发现'= SUMPRODUCT'相反,我使用它但它没有返回任何值。这是我的公式

=SUMPRODUCT((('BB_Juni 2016_Crew'!E:E="DB")+('BB_Juni 2016_Crew'!E:E="DZ"))*('BB_Juni 2016_Crew'!G:G))

也许用if子句循环遍及范围并在“then”之后使用sum函数?

第26行& 27是两个不同的字符串值(“DB,DZ”),并且在同一行中是列中的值(Betrag),这意味着金额,我需要一个公式来汇总与“DB”在同一行中的所有值和“DZ”

3 个答案:

答案 0 :(得分:1)

这是我能在没有更多信息的情况下改善现有公式的最佳方法。

=SUMPRODUCT(('BB_Juni 2016_Crew'!E1:INDEX('BB_Juni 2016_Crew'!E:E, MATCH("zzz", 'BB_Juni 2016_Crew'!E:E))={"DB","DZ"})*('BB_Juni 2016_Crew'!G1:INDEX('BB_Juni 2016_Crew'!G:G, MATCH("zzz", 'BB_Juni 2016_Crew'!E:E))))

它可能看起来更复杂,但它实际上执行的工作要少得多。

实际上,这可能会更好。

=SUM(SUMIFS('BB_Juni 2016_Crew'!G:G, 'BB_Juni 2016_Crew'!E:E, {"DB","DZ"}))

两者都是标准公式(不需要CSE)。

答案 1 :(得分:1)

我同意Jeeped你应该" 将你的完整列引用剪切到数据的实际范围"

公式中存在轻微错字。将*替换为,,它可以正常工作:)

你原来的公式应该是

=SUMPRODUCT((('BB_Juni 2016_Crew'!E1:E6="DB")+('BB_Juni 2016_Crew'!E1:E6="DZ")), 'BB_Juni 2016_Crew'!G1:G6)

将6替换为相关行。

enter image description here

答案 2 :(得分:0)

有一个电子表格函数AND接受多个条件并返回TRUE,所有条件都为TRUE,否则为FALSE。

您可以尝试重新措辞您的公式或使您的问题更清晰,以便可以为您提供实际的工作公式。