FILTRAR, ORDENAR y UNICOS en Excel: reportes que se actualizan solos
Aprende a usar FILTRAR, ORDENAR, ORDENARPOR y UNICOS para crear listas sin repetir, filtros con varias condiciones y reportes que se actualizan solos.

Durante años, sacar una lista de clientes sin repetir, ordenar un reporte o mostrar solo las ventas de una ciudad exigía filtros manuales, tablas dinámicas o fórmulas larguísimas. Con las matrices dinámicas de Excel, tres funciones resuelven todo eso y se actualizan solas: FILTRAR, ORDENAR y UNICOS.
Están disponibles en Excel para Microsoft 365, Excel 2021 y versiones posteriores, y en Excel para la web. Si tu Excel no las reconoce (aparece #¿NOMBRE?), tu versión es anterior.
Separador de argumentos. En este artículo uso punto y coma (;), que es lo habitual en Excel en español. Si tu equipo está configurado con coma como separador de listas, cambia cada ; por ,.
Los datos de ejemplo
Una tabla de Excel llamada Ventas (Insertar → Tabla) con las columnas Fecha, Cliente, Ciudad, Vendedor, Producto y Total. Trabajar con una tabla tiene una ventaja: cuando agregas filas, las fórmulas las incluyen automáticamente.
Qué significa que una fórmula se “desborde”
Escribes la fórmula en una sola celda y el resultado ocupa todas las filas y columnas que necesite. Ese rango se llama rango desbordado y se marca con un borde azul. Si mañana hay más resultados, crece solo; si hay menos, se encoge.
Para referirte al resultado completo desde otra fórmula, usa la celda inicial con el signo #: H2# significa “todo lo que desborda desde H2”.
UNICOS: listas sin repetir
=UNICOS(Ventas[Cliente])
Devuelve cada cliente una sola vez. Antes había que copiar la columna y usar Quitar duplicados cada vez que cambiaban los datos. Ahora la lista se actualiza sola.
Dos usos muy prácticos:
=CONTARA(UNICOS(Ventas[Cliente]))
Cuenta cuántos clientes distintos compraron. Y con el tercer argumento en VERDADERO, obtienes los valores que aparecen exactamente una vez, por ejemplo, los clientes que compraron una sola vez y no volvieron:
=UNICOS(Ventas[Cliente]; FALSO; VERDADERO)
ORDENAR y ORDENARPOR
La sintaxis es ORDENAR(matriz; [índice_orden]; [criterio_orden]). El índice es el número de columna por la que se ordena y el criterio es 1 para ascendente o -1 para descendente.
=ORDENAR(Ventas; 6; -1)
Devuelve toda la tabla ordenada por la columna 6 (Total), de mayor a menor.
ORDENARPOR ordena una matriz según otra, aunque esa otra no aparezca en el resultado. Por ejemplo, la lista de clientes y ciudades, ordenada por el total:
=ORDENARPOR(Ventas[[Cliente]:[Ciudad]]; Ventas[Total]; -1)
ORDENARPOR también es la forma más clara de ordenar por dos criterios. Por ciudad de la A a la Z y, dentro de cada ciudad, por total de mayor a menor:
=ORDENARPOR(Ventas; Ventas[Ciudad]; 1; Ventas[Total]; -1)
FILTRAR: el filtro que se escribe una vez
La sintaxis es FILTRAR(matriz; incluir; [si_vacío]). incluir es una condición que se evalúa fila por fila.
=FILTRAR(Ventas; Ventas[Ciudad]="Manta"; "Sin ventas")
Mejor aún, deja la condición en una celda para que cualquiera pueda cambiarla. Si escribes la ciudad en J1:
=FILTRAR(Ventas; Ventas[Ciudad]=J1; "Sin ventas")
Varias condiciones
Para que se cumplan todas (Y), multiplica las condiciones. Para que se cumpla alguna (O), súmalas. Cada condición va entre paréntesis.
Manta Y más de 500:
=FILTRAR(Ventas; (Ventas[Ciudad]="Manta")*(Ventas[Total]>500); "Sin ventas")
Manta O Portoviejo:
=FILTRAR(Ventas; (Ventas[Ciudad]="Manta")+(Ventas[Ciudad]="Portoviejo"); "Sin ventas")
Ventas de noviembre de 2026:
=FILTRAR(Ventas; (Ventas[Fecha]>=FECHA(2026;11;1))*(Ventas[Fecha]<=FECHA(2026;11;30)); "Sin ventas")
La multiplicación funciona porque Excel trata VERDADERO como 1 y FALSO como 0: solo cuando las dos condiciones valen 1, el producto es 1.
Combinarlas: donde está la verdadera potencia
Las tres funciones se pueden anidar. Los clientes de Manta, sin repetir y en orden alfabético:
=ORDENAR(UNICOS(FILTRAR(Ventas[Cliente]; Ventas[Ciudad]=J1)))
Las cinco ventas más altas de la ciudad elegida, con TOMAR (disponible en Microsoft 365):
=TOMAR(ORDENAR(FILTRAR(Ventas; Ventas[Ciudad]=J1); 6; -1); 5)
Y un resumen por ciudad sin tabla dinámica: en H2 la lista de ciudades y en I2 el total de cada una.
H2: =ORDENAR(UNICOS(Ventas[Ciudad]))
I2: =SUMAR.SI(Ventas[Ciudad]; H2#; Ventas[Total])
Como I2 usa H2#, también desborda: un total por cada ciudad, y si aparece una ciudad nueva, se agrega sola.
Bonus: listas desplegables que se actualizan solas
Si en H2 tienes =ORDENAR(UNICOS(Ventas[Ciudad])), ve a Datos → Validación de datos → Lista y en Origen escribe =$H$2#. La lista desplegable tendrá siempre las ciudades actuales, sin repetir y ordenadas. Combínala con FILTRAR en J1 y tienes un mini reporte interactivo.
Errores frecuentes
- #¡DESBORDAMIENTO!: hay algo escrito en las celdas donde el resultado necesita desbordarse. Borra esas celdas o mueve la fórmula a un espacio libre.
- #¡CALC! con FILTRAR: ninguna fila cumple la condición y no pusiste el tercer argumento. Agrega un texto como
"Sin ventas". - #¡DESBORDAMIENTO! dentro de una tabla: las fórmulas desbordadas no funcionan dentro de una tabla de Excel. Escríbelas fuera de ella.
- Las fechas salen como números: FILTRAR devuelve los valores, no el formato. Aplica formato de fecha a la columna del resultado.
- UNICOS deja “Manta” y “Manta ” como distintos: hay espacios de más. Usa
=UNICOS(ESPACIOS(Ventas[Ciudad]))o limpia los datos en el origen.
Con FILTRAR, ORDENAR y UNICOS tus reportes dejan de depender de copiar, pegar y filtrar a mano. Escribes la fórmula una vez y cada vez que llegan datos nuevos, el reporte ya está listo.


