Problemas com char(60) ao fazer um sumif()

Problemas com char(60) ao fazer um sumif()

Se eu estiver usando a função interna sumif (Excel Microsoft Office Home & Student 2016 versão 1708), obtenho o seguinte comportamento:

amount    description
4         '<Sydney
4         '<Melbourne
=sumif(b1:b3,"'<Sydney",a1:a3)

Sumif retorna 8.

Isso está incorreto. A soma deve retornar 4.

Observe o uso do ' para escape de string ao inserir texto na célula.

Alguma idéia do que estou fazendo de errado aqui?

Vale a pena notar que o problema parece estar relacionado ao uso do colchete angular (char(60)). Agradeço por ter conseguido contornar esse problema usando a função replace() - mas gostaria de entender qual é a causa desse problema e como dizer ao Excel para tratar char(60) como uma string.

Alguma ideia?

Observe que não há problemas com o sumif se apenas o hífen (char(45)) for usado. Por exemplo:

amount    description
4         '-Sydney
4         '-Melbourne
=sumif(b1:b3,"'-Sydney",a1:a3)

Isso soma corretamente 4.

Responder1

O problema reside

=sumif(b1:b3,"<Sydney",a1:a3)

(Presumo que o parâmetro de condição seja "<Sydney"o "'<Sydney"indicado na pergunta, pois retornará 0.)

O parâmetro de condição tratará a <comparação inicial como "menor que". A condição "<Sydney"será, portanto, interpretada como menor que a string Sydneypelo seu valor ASCII (ou valor Unicode?). Portanto, as strings com caracteres iniciais Aaté R, e <são todas "menores que" a string Sydney.

Para corrigir o problema, você pode alterar a função como:

=sumif(b1:b3,"=<Sydney",a1:a3)

O =parâmetro na condição dirá ao Excel para "soma apenas a célulaé igualpara <Sydney, retornando, portanto, o resultado correto.

Para ilustrar melhor, experimente estes dados de amostra:

          [Col A]  [Col B]
[Row 1]     1          <
[Row 2]     2          A
[Row 3]     4          S
[Row 4]     8          Z

=SUMIF(B1:B4,"<S",A1:A4)    [3]
=SUMIF(B1:B4,"<=S",A1:A4)   [7]
=SUMIF(B1:B4,"=S",A1:A4)    [4]
=SUMIF(B1:B4,">S",A1:A4)    [8]

=sumif(b1:b3,"-Sydney",a1:a3)funciona conforme o esperado, pois -não significa nada e, portanto, o Excel, sumifpor padrão, compara cada célula em B1:B3 com a string inteira -Sydneye soma apenas se as duas strings forem idênticas.

informação relacionada