A função UPPER()
por padrão só funciona em um único valor. Se você fornecer um intervalo / matriz para ele, a função usará a primeira célula no intervalo ou o primeiro valor da matriz. O resultado é sempre uma string.
A função SUMIF()
espera um intervalo como seu primeiro argumento. Como o resultado da função UPPER()
é uma string, o Excel lança um erro.
Agora, é claro, a comparação na função SUMIF()
não faz distinção entre maiúsculas e minúsculas, portanto, essa fórmula
=SUMIF(E2:E18, "Y", C2:C18)
funciona corretamente para detectar y
e Y
.
Se por algum motivo você realmente quiser usar UPPER(),
, esta é a fórmula equivalente a funcionar corretamente para o que você esperaria que =SUMIF(UPPER(E2:E18), "Y", C2:C18)
fizesse:
=SUMPRODUCT((UPPER(E2:E18)="Y")*(C2:C18))
A razão pela qual UPPER()
funciona nesse caso é que SUMPRODUCT()
espera que seus argumentos sejam matrizes, portanto, o Excel retorna uma matriz de strings a partir dele.