miércoles, agosto 05, 2009

Contar condicional de números con celdas en blanco

En ciertas situaciones Excel puede llevarnos a cometer errores difíciles de detectar. Este ejemplo es la “vida real”, es decir, de un compañero de trabajo.

Supongamos que tenemos un rango de nueve celdas, cinco de las cuales contienen números y las cuatro restantes en blanco



contar condicional con celdas en blanco

La fórmula =SUMA(B2:B10) da como resultado 150. Es decir, las celdas en blanco son consideradas ceros o ignoradas por la función SUMA.


Lo mismo sucede si usamos la función CONTAR para contar cuántos números hay en el rango. =CONTAR(B2:B10) da como resultado 5. Lo mismo con función CONTARA.


Todo esto nos puede llevar a pensar que si queremos contar cuántos números distintos de cero hay el rango, todo lo que tenemos que hacer es usar la función CONTAR.SI de esta manera


=CONTAR.SI(B2:B9,"<>0")


Esta fórmula da como resultado 9. Este resultado es un tanto extraño. Veamos qué pasa si creamos una columna auxiliar con la fórmula =B2<>0 (que copiamos a los largo del rango)

contar condicional con celdas en blanco

Vemos que obtenemos cinco VERDADERO y cuatro FALSO. Es decir, podríamos esperar que el resultado de CONTAR.SI en nuestro caso sea 5, pero como vemos es 9.


En nuestro caso, es muy fácil percibir que el resultado no es el esperado, pero si analizamos un rango grande, digamos mil celdas, es más que probable que aceptemos el resultado como correcto.


En caso de tener que contar condicionalmente números en un rango que contiene o puede contener celdas en blanco, podemos usar alguna de estas soluciones:

# usar la función CONTAR.BLANCO para “corregir el resultado de CONTAR.SI


=CONTAR.SI(B2:B10,"<>0")-CONTAR.BLANCO(B2:B10)


# usar la fórmula matricial

={SUMA(--(B2:B10<>0))}

(recordemos una vez más que las fórmulas matriciales deben ser introducidas apretando simultáneamente Ctrl+Mayúsculas+Enter)

# usar la función SUMAPRODUCTO:

=SUMAPRODUCTO(--(B2:B10<>0))



Technorati Tags:

7 comentarios:

  1. Solo por agregar detalle... en el ejemplo podrías poner un cero, solo para hacer notar la diferencia entre que la celda tenga valor cero v/s que la celda no tenga ningun valor.

    ResponderBorrar
  2. De que estoy sorprendido, porque no sabia que con esa fórmula se obtenía ese tipo de resultado con error. Gracias por el dato.

    Sabes que tengo un problema con las gráficas. En excel 2003 hay un grupo de gráficas avanzadas las cuales no logro conseguir en 2007, eso a que se debe?

    Si quieres me puedes escribir directamente a eduardo.galindez@gmail.com.

    Saludos,
    Eduardo.

    ResponderBorrar
  3. Eduardo
    el "motor" de gráficos de Excel 2007 es diferente del de las versiones anteriores. El tema da para una nota (en cuanto encuentre el tiempo para prepararla).

    ResponderBorrar
  4. Otra posibilidad que veo mucho más sencilla:

    =CONTAR.SI(B2:B10;">0")+CONTAR.SI(B2:B10;"<0")

    ResponderBorrar
  5. Gracias por el dato , me sirvio para entregar un report .-

    attePalsur.-

    ResponderBorrar
  6. Que puedo hacer si lo que necesito es contar las celdas en blanco pero no de un rango sino aleatorias??

    ResponderBorrar
  7. ¿Podrías precisar a qué te refieres con celda aleatorias? Tal vez ¿todas las celdas en blanco de la hoja?
    Básicamente, un rango está compuesto de por lo menos una celda.

    ResponderBorrar

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