具有多个OR(+),重复计数的SUMPRODUCT

时间:2018-07-12 18:15:01

标签: excel

据我了解,您可以使用“ +”作为在SUMPRODUCT公式中包含OR条件的方式。但是我的公式有问题。

我尝试在公式中插入OR条件,概述如下:

贷款类型=其他....或贷款类型= HELOC ....或锁定日期=“”

此公式可带回10,240

=SUMPRODUCT(--(Table1[Loan Type]="Other")+(Table1[Loan Type]="HELOC")+(Table1[LOCK DATE]=""), --(Table1[DPA] <> "Y"),--(Table1[Disbursement Date]=Daily!$E36),--(Table1[CLOSING DATE] > 1), --(Table1[Run Date] > E36),--ISERROR(SEARCH("Jumbo",(Table1[Loan Program]))), Table1[Total Loan Amount])

此公式可带回5,120

=SUMPRODUCT(--(Table1[Loan Type]="Other")+(Table1[LOCK DATE]=""), --(Table1[DPA] <> "Y"),--(Table1[Disbursement Date]=Daily!$E36),--(Table1[CLOSING DATE] > 1), --(Table1[Run Date] > E36),--ISERROR(SEARCH("Jumbo",(Table1[Loan Program]))), Table1[Total Loan Amount])

唯一的区别是公式开头的OR(+)标准。第一个公式是错误的重复计算(整个数据集中只有一个实例,贷款金额为5,120)。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

将您的OR条件包装在SIGN function中,以使两个或多个肯定值返回的值不超过1。

=SUMPRODUCT(SIGN((Table1[Loan Type]="Other")+(Table1[Loan Type]="HELOC")+(Table1[LOCK DATE]="")), 
            --(Table1[DPA] <> "Y"), --(Table1[Disbursement Date]=Daily!$E36),
            --(Table1[CLOSING DATE] > 1), --(Table1[Run Date] > E36), 
            --ISERROR(SEARCH("Jumbo", Table1[Loan Program])), 
              Table1[Total Loan Amount])

任何涉及布尔值的数学运算都将布尔值转换为1或0。由于要添加三个布尔值,因此一开始不需要双精度一元。