Dada una lista de clientes y fechas de contacto, queremos determinar cuál es la fecha más reciente en la cual hemos contactado a cada uno de los clientes.
Podemos resolver este problema de dos maneras: con fórmulas matriciales y con tablas dinámicas.
Supongamos esta tabla
Solución con fórmulas matriciales.
Empezamos creando una lista donde en la primer columna ponemos los nombres de los clientes
El segundo paso consiste en definir dos nombres: clientes que contiene el rango A2:A15 y fechas que contiene el rango B2:B15
En la celda D2 ponemos esta formula matricial
=MAX((clientes=D2)*fechas)
Como toda fórmula matricial la introducimos apretando simultáneamente Ctrl+Mayúsculas+Enter. Ahora copiamos la fórmula a las restantes celdas del rango
Para explicar como funciona esta fórmula matricial, veamos una solución que usaría columnas auxiliares.
En la primer columna auxiliar comparamos si el cliente de la fila coincide con el cliente que estamos buscando (en nuestro caso Cliente 1).
En la segunda columna auxiliar simplemente multiplicamos la columna de las fechas por la primer columna auxiliar. Dado que Excel interpreta VERDADERO como el valor 1 y FALSO como 0, obtenemos fechas sólo para el cliente 1. Ahora es evidente que la fórmula =MAX(D2:D15) nos dará la última fecha del Cliente 1.
Al usar nuestra fórmula matricial hacemos lo mismo pero evaluando cada uno de los clientes de acuerdo a la fila en la tabla de resultados.
Esta solución tiene dos inconvenientes:
1 - si se trata de una hoja con una gran cantidad de datos, el recalculado de la hoja puede ser muy lento.
2 - Cada vez que agreguemos un cliente a nuestra base de datos, tendremos que modificar la tabla de resultados agregando el cliente y copiando la fórmula.
Estos inconveniente se pueden superar usando tablas dinámicas en lugar de fórmulas matriciales.
Solución con tablas dinámicas.
Seleccionamos la celda A1 (o cualquier celda de la lista) y creamos una tabla dinámica
Arrastramos el campo Clientes al área de filas y el campo Fechas al área de datos
Activamos el menú de configuración de campo para el área de datos y hacemos estos cambios:
# - elegimos resumir por Máx
# elegimos el formato de fecha para los valores
Como podemos ver obtenemos el mismo resultado como con las fórmulas matriciales
Por supuesto, la fila Total General no tiene ningún sentido, por lo cual quitamos la señal de la opción Totales generales de columnas en el menú Opciones de tabal dinámica.
Esta solución es más eficiente que la anterior. Podemos usar rangos dinámicos para que las nuevas entradas sean procesadas automáticamente al actualizar la tabla dinámica.
El cuaderno con el ejemplo se puede descargar aquí
Technorati Tags: MS Excel
Bueno, pues yo soy el lector de México que pido el apoyo y simplemente quiero dart enormemente las gracias por tu apoyo en la resolución de este problema que me traía loco.
ResponderBorrarRealmente gracias por esto y por compartir tan amablemente tus conocimientos con los internautas.
Saludos!!!
Juan