Ir al contenido
Jossua Servicios
Excel

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.

Por Jossua4 de noviembre de 20264 min de lectura
Fórmula ORDENAR, UNICOS y FILTRAR en Excel que devuelve la lista de clientes de Manta

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.

JossuaConsultor en Business Intelligence y Analítica de Datos. Manta, Ecuador.

Sigue con Excel

Otros artículos del mismo tema.