如果另一列中的值为“Y”,我想在一列中使用 SUMIF,并且我想将其与包含“Y”的列的 UPPER() 函数相结合。这是我尝试的方法, =SUMIF(UPPER(E2:E18), "Y", C2:C18)
但出现错误。如果我删除 UPPER() 函数,它就会起作用。我做错了什么?
答案1
默认情况下,该UPPER()
函数仅适用于单个值。如果您为其提供范围/数组,则该函数将使用范围内的第一个单元格或数组的第一个值。但结果始终是字符串。
该SUMIF()
函数要求将范围作为其第一个参数。由于该UPPER()
函数的结果是一个字符串,因此 Excel 会抛出错误。
当然,SUMIF()
函数中的比较不区分大小写,因此此公式
=SUMIF(E2:E18, "Y", C2:C18)
可以正确检测y
和Y
。
如果出于某种原因你真的想要使用这是与您期望执行的UPPER(),
操作等效的正确工作公式:=SUMIF(UPPER(E2:E18), "Y", C2:C18)
=SUMPRODUCT((UPPER(E2:E18)="Y")*(C2:C18))
UPPER()
在这种情况下起作用的原因是,它SUMPRODUCT()
期望它的参数是数组,所以 Excel 从中返回一个字符串数组。