为什么excel SUMIF与范围标准不能按预期工作?

时间:2018-05-11 13:28:48

标签: excel excel-formula

我有3列A,B,C。现在,我想得到每个单元格Ai的总和 Bi< Ci

示例:

A    B    C
-----------
2    1    3
4    5    4
3    2    7
6    6    6
-----------

Expected result = A1 + A3 = 2 + 3 = 5

我尝试了以下公式:=SUMIF(B1:B4,"<C1:C4",A1:A4), 但它给了我0!

任何人都可以提供帮助吗?

3 个答案:

答案 0 :(得分:3)

SUMIF函数接受3个参数:rangecriteriasum_range

如果您选中the documentation,则会注意到rangesum_range同时接受&#34;范围的单元格&#34; (即多个值),criteria单值,与range中的所有单元格进行比较相同。如果你放入一个范围或数组,那么它只会使用第一个项。
{EDIT} 除非整个函数是数组计算的一部分,否则您将获得数组中每个项目的SUMIF数组 - 例如{=SUM(SUMIF(A1:A4,{1,2}))}{=SUM({SUMIF(A1:A4,1), SUMIF(A1:A4,2)})}

相同

这意味着,您可以=SUM(B1:B4,"<" & MIN(C1:C4),A1:A4)添加A列中的值,其中B列中的值小于 all C列中的值,但是对于行逐行比较你需要一个数组公式或SUMPRODUCT,如下所示:

=SUMPRODUCT(A1:A4*--(B1:B4<C1:C4))

答案 1 :(得分:1)

您可以使用此数组公式:

{=SUM(IF(B1:B4<C1:C4,A1:A4))}

您需要使用 Ctrl + Shift + Enter 来应用它。

您知道在看到公式

周围的花括号时正确设置了数组公式

答案 2 :(得分:0)

Sub sumIf()

Dim sum As Integer


For rownum = 1 To 4
    If Sheets("Sheet12").Cells(rownum, 2) < Sheets("Sheet12").Cells(rownum, 3) Then
    sum = Sheets("Sheet12").Cells(rownum, 1) + sum
    End If
Next rownum

MsgBox sum

End Sub