在 Excel 2010 中使用 UPPER() 转换范围

在 Excel 2010 中使用 UPPER() 转换范围

如果另一列中的值为“Y”,我想在一列中使用 SUMIF,并且我想将其与包含“Y”的列的 UPPER() 函数相结合。这是我尝试的方法, =SUMIF(UPPER(E2:E18), "Y", C2:C18)但出现错误。如果我删除 UPPER() 函数,它就会起作用。我做错了什么?

答案1

默认情况下,该UPPER()函数仅适用于单个值。如果您为其提供范围/数组,则该函数将使用范围内的第一个单元格或数组的第一个值。但结果始终是字符串。

SUMIF()函数要求将范围作为其第一个参数。由于该UPPER()函数的结果是一个字符串,因此 Excel 会抛出错误。

当然,SUMIF()函数中的比较不区分大小写,因此此公式

=SUMIF(E2:E18, "Y", C2:C18)

可以正确检测yY


如果出于某种原因你真的想要使用这是与您期望执行的UPPER(),操作等效的正确工作公式:=SUMIF(UPPER(E2:E18), "Y", C2:C18)

=SUMPRODUCT((UPPER(E2:E18)="Y")*(C2:C18))

UPPER()在这种情况下起作用的原因是,它SUMPRODUCT()期望它的参数是数组,所以 Excel 从中返回一个字符串数组。

相关内容