Problemas con char (60) al hacer un sumif ()

1

Si estoy usando la función incorporada sumif (Excel Microsoft Office Home & Student 2016 versión 1708) obtengo el siguiente comportamiento:

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

Sumif devuelve 8.

Esto es incorrecto. El sumif debería devolver 4.

Tenga en cuenta el uso de 'para el escape de cadena al ingresar texto en la celda.

¿Alguna idea de lo que estoy haciendo mal aquí?

Vale la pena señalar, el problema parece estar relacionado con el uso del soporte angular (char (60)). Aprecio que podría solucionar este problema utilizando la función sustituto (), pero me gustaría entender cuál es la causa de este problema y cómo decirle a Excel que trate char (60) como una cadena.

¿Algunas ideas?

Tenga en cuenta que no hay problemas con el sumif si solo se usa el hypen (char (45)). P.ej:

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

Esto suma correctamente a 4.

Sean
fuente

Respuestas:

1

El problema radica en

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

(Supongo que el parámetro de condición es en "<Sydney"lugar de "'<Sydney"como se indica en la pregunta, ya que devolverá 0.)

El parámetro de condición tratará el inicio <como una comparación "menor que". Por "<Sydney"lo tanto, la condición se interpretará como menor que la cadena Sydneypor su valor ASCII (¿o valor Unicode?). Por lo tanto, las cadenas con caracteres iniciales Aa R, y <son "menores que" la cadena Sydney.

Para solucionar el problema, puede cambiar la función como:

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

El =en el parámetro de condición le dirá Excel para "resumir sólo la celda es igual a <Sydney, por lo tanto, devolver el resultado correcto.

Para ilustrar más, pruebe estos datos de muestra:

          [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 como se esperaba, ya -que no significa nada y, por lo tanto, Excel sumifcompara de forma predeterminada cada celda en B1: B3 con la cadena completa -Sydneyy suma solo si las dos cadenas son idénticas.

Kenneth L
fuente
¡Usted, señor, es un caballero y un erudito! Gracias, esto funciona.
Sean