FILTRAR con ELEGIR y BUSCARX para consultas cruzadas entre tablas

Interesante problema planteado por Hector sobre cómo construir una consulta dinámica que combine columnas de una tabla con datos cruzados de otra tabla, todo filtrado por rango de fechas.

La solución usa FILTRAR como base, pero el truco está en ELEGIR con un array constante {1,2,3,4,5,6,7,8,9} para construir una matriz virtual de 9 columnas, donde la mayoría vienen directamente de la tabla de viajes pero una de ellas se obtiene mediante BUSCARX cruzando con otra tabla:

``
=SI.ERROR(
FILTRAR(
ELEGIR(
{1,2,3,4,5,6,7,8,9},
tbeViaje[Fecha],
tbeViaje[Viaje],
tbeViaje[ECO],
tbeViaje[Operador],
SI.ERROR(BUSCARX(tbeViaje[Viaje], tbeViajeCP[Viaje], tbeViajeCP[Cliente], ""), ""),
tbeViaje[Descripcion],
tbeViaje[Modalidad],
tbeViaje[Origen],
tbeViaje[Destino]),
(tbeViaje[Fecha]>=A3)*(tbeViaje[Fecha]<=B3)),
"")
`

El patrón ELEGIR con array constante permite montar una matriz personalizada seleccionando y reordenando columnas a voluntad, e incluso intercalando columnas calculadas como el BUSCARX que trae el nombre del cliente desde otra tabla. El filtro final por fechas aplica sobre toda la matriz construida.

Miki también aporta un truco complementario: usar UNICOS() en una hoja auxiliar y vincular el resultado con #` (operador de derrame) para crear validaciones de datos que se actualizan automáticamente.

Más contenido de Excel en InflueXcel