jueves, diciembre 13, 2012

Cálculo de mínimos con criterios con tablas dinámicas.

En una nota de hace varios años atrás mostré los problemas que pueden surgir cuando queremos calcular el mínimo en un rango de valores, sin incluir los ceros. Esto sucede, por ejemplo, cuando queremos extraer el mínimo de una lista bajo algún criterio.

Veamos este ejemplo: tenemos una lista de órdenes con sus fechas de entrega. Cada orden tiene distintas fechas de entrega y queremos encontrar la fecha de la primera entrega.


Podemos vernos tentados a usar esta fórmula matricial

=MIN((A2:A101=D2)*B2:B101)

Pero veremos que el resultado es 00/01/1900 (que es cero con formato de fecha).



Para evitar que MIN evalúe los ceros que aparecen en la matriz del resultado, podemos usar esta otra fórmula matricial

=MIN(SI(($A$2:$A$101=D2)*$B$2:$B$101=0,"",($A$2:$A$101=D2)*$B$2:$B$101))



Para esta misma tarea podemos usar tablas dinámicas en lugar de usar fórmulas matriciales.


Creamos la tabla a partir de la lista; luego usamos la función MIN para resumir los valores; cambiamos el formato de los valores a fecha y finalmente quitamos los totales por columna.

Una de las ventajas de este método es que no tenemos que ir complicando nuestra fórmula a medida que agregamos criterios, por ejemplo, región.


Esta tabla dinámica muestra las fechas por orden y región

3 comentarios:

  1. Como siempre muy buen aporte Jorge.
    Saludos.

    ResponderBorrar
  2. Muchas gracias Jorge! Por que se multiplica en la formula matricial?

    ResponderBorrar
  3. Tomando como ejemplo la primer formula matricial la expresión (A2:A101=D2) genera un vector de resultados VERDADERO o FALSO; al multiplicar este vector por el segundo (B2:B101) Excel multiplica cada miembro por su equivalente en el otro vector. La operación de multiplicar convierte los valores FALSO en 0 y los VERDADERO en 1.

    ResponderBorrar

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