使用sum if和两个不同的参数

时间:2016-04-11 20:23:44

标签: excel vba excel-vba if-statement

我的电子表格包含如下列:

Column A -- Column B -- Column C -- Column d -- Column E
1001          5.00        D           1001        10.00
1001          3.00        D           1002        10.00
1001          2.00        N
1002          5.00        D
1002          5.00        D

我一直在使用= SUMIF公式将值汇总到E列,它看起来像:

=SUMIF(A1:A5,D1,B1:B5)

根据我的理解,它会查找D1的值,查找A1:A5范围内的每个匹配项,并将与B列对应的值相加。

我的问题是C列中的值可能与D或N不同,我想添加两个额外的列,一个用于汇总100列的所有实例,在C列中的值为D,另一列用于汇总所有实例在C列中,值为N的1001。

我尝试使用= SUMIFS()公式,但是excel会抛出我没有足够参数的错误。我写了这样的公式:

=SUMIFS(A1:A5, D1, C1:C5 = "D", B1:B5)

当我返回时“没有足够的有效参数......”我发现的大部分内容都需要使用2个以上的参数。最近我尝试使用Here提供的示例。

2 个答案:

答案 0 :(得分:4)

Sumif()和Sumifs()的语法略有不同。请记住,这两个函数都没有使用=符号进行比较。

Sumif语法:=SUMIF(range, condition, [sum range])

Sumifs语法:=SUMIFS(sum range, criteria range1, criteria1, criteria range2, criteria2,...)

所以改变你的公式

=SUMIFS(A1:A5, D1, C1:C5 = "D", B1:B5)

=SUMIFS(B1:B5, A1:A5, D1, C1:C5,"D")

答案 1 :(得分:1)

SUMIF functionSUMIFS function之间有不同的语法。

原因是SUMIF可以使用 sum_range 作为 criteria_range 。从您的示例中,如果您只想对B列中大于4 的数字求和,则可以通过两种方式编写SUMIF。

'SUMIF(criteria_and_sum_range, criteria)
=sumif(B:B, "<"&4)
'SUMIF(criteria_range, criteria, [sum_range])
=sumif(B:B, "<"&4, B:B)

SUMIF只有一个可选参数。如果缺少那么第一个参数( criteria_range )也用作 sum_range 。如果它包含其可选参数,则第一个用于标准,后者用于总和。

但是SUMIFS本质上只能执行后者,而 sum_range 首先出现,因为可能有超过1个 criteria_range / 条件

'SUMIFS(sum_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)
=sumifs(B:B, B:B, "<"&4)

由于SUMIFS中的 criteria_range / 条件对的数量可以设想为1,2更多,因此具有非可选 sum_range <的更紧密的结构/ em>因为第一个参数是必要的。