lunes, agosto 13, 2012

Cuando CONTAR.SI da resultados erróneos

Si necesitamos contar condicionalmente, nuestra primera elección es la función CONTAR.SI. Pero en ciertas situaciones, CONTAR.SI puede dar resultados equivocados.

Veamos este ejemplo “basado en un hecho real” (uno de mis clientes). Supongamos una empresa que usa códigos alfanuméricos para identificar sus productos. Con este sistema, 12345 y 012345 son dos productos distintos. Ahora queremos contar cuántas veces se repite un código en una lista, por ejemplo en esta



Fácil, ¿no?
A simple viste vemos que 12345 se repite tres veces y 012345 se repite dos veces. Veamos que pasa con CONTAR.SI



Usamos =CONTAR.SI($A$2:$A$6,C2) en D2 y =CONTAR.SI($A$2:$A$6,C3) en D3 y en ambos casos el resultado es 5!

Esto se debe a que CONTAR.SI evalúa todo valor como número, de manera que 012345 es evaluado como número y por lo tanto es considerado idéntico a 12345.

La solución es usar SUMAPRODUCTO, de esta manera

=SUMAPRODUCTO(--($A$2:$A$6=C2))



SUMAPRODUCTO genera un vector de con los valores de la celda del rango



y los compara con el valor de la condición, generando un vector de valores VERDDERO t FALSO



Finalmente usamos el doble “--“ para convertir los VERDADERO en 1 y los FALSO en 0.

Quien no se sienta cómodo con el uso del doble “-“ puede multiplicar el vector por 1

=SUMAPRODUCTO(($A$2:$A$6=C2)*1)

7 comentarios:

  1. Primero que nada le agradezco todo lo que me ha enseñado en su blog, ahora tengo una duda, sé que no corresponde a esta entrada pero no supe dónde ponerla. La duda es la siguiente. Cómo puedo hacerle para aparezca el valor de un rango de celdas de acuerdo al valor de otra celda. En el mismo documento tengo un calendario para varios años, digamos que lo que quiero lograr es que si pongo en a1 2012 aparezca todo lo correspondiente a 2012 o si pongo 2014 que aparezca lo de 2014, se puede hacer eso?

    Muchas gracias!

    ResponderBorrar
  2. Si, no está relacionado con el tema de la nota y para eso puse el enlace Ayuda (en la parte superior del blog).
    Por lo que logro entender, una buena solución sería usar una tabla dinámica.

    ResponderBorrar
  3. Buen día maestro, buen aporte y no habría imaginado la solución que usted nos refiere, saludos.

    ResponderBorrar
  4. Hola Jorge :

    un saludo especial y agradeciendo tú generosidad por el tiempo dedicado.El ejemplo anterior me vino como anillo al dedo, llego muy oportunamente, ya que estoy realizando un trabajo donde me implica utilizar dicha función y formula.
    Muchas gracias
    Cordial saludo,

    Jorge Luis Pérez

    ResponderBorrar
  5. JOSE PEDRO MUÑIZ VARGAS17 agosto, 2012 01:38

    Hola, Jorge:

    Te agradezco mucho tus valiosos aportes ya que, cada vez me aprendo y, a la vez, me sorprende lo que tiene esta maravillosa herramienta, microsoft EXCEL. Deseo que sigas con tu excelente labor.
    Muchas gracias y saludo cordial.

    José Pedro Muñiz Vargas.

    ResponderBorrar
  6. Gracias por los datos, pero cabe recalcar que en “Cuando CONTAR.SI da resultados erróneos” solo funciona en celdas que contengan tipo TEXTO, en Numéricos no funciona.
    Gracias por el aporte.

    ResponderBorrar
  7. Carlos, toda la idea de la nota es que CONTAR.SI evalua textos compuestos sólo de números como números. Cuando la lista contiene sólo números, CONTAR.SI da resultados correctos.

    ResponderBorrar

Nota: sólo los miembros de este blog pueden publicar comentarios.