Obtener la partida activa de un depósito con BUSCARX: concatenación y búsqueda inversa
Un miembro de la comunidad gestiona un inventario de depósitos (AFORO) con una tabla llamada PARTIDAS_AGE. Cada depósito tiene múltiples partidas con fecha de apertura y fecha de cierre. El reto: obtener automáticamente la partida activa (la más reciente, o la que aún no tiene fecha de cierre) para cada depósito.
Hugo propone una primera solución usando BUSCARX con una condición matricial que maximiza la fecha de apertura dentro del depósito:
``
=BUSCARX(
1;
(MAX(SI(PARTIDAS_AGE[Depósito]=[@Deposito]; PARTIDAS_AGE[Fecha apertura]; 0))
= PARTIDAS_AGE[Fecha apertura])
(PARTIDAS_AGE[Depósito]=[@Deposito]);
PARTIDAS_AGE[Partida]; 0
)
`
Leo simplifica el enfoque usando BUSCARX con modo de búsqueda inversa (-1) y concatenación para un BUSCARX multicriteria:
`
=BUSCARX(
[@Deposito] & MAX(([@Deposito]=PARTIDAS_AGE[Depósito]) PARTIDAS_AGE[Fecha de Cierre]);
PARTIDAS_AGE[Depósito] & PARTIDAS_AGE[Fecha de Cierre];
PARTIDAS_AGE[Partida]; "";;-1
)
`
La idea: concatenar depósito + fecha de cierre para crear una clave compuesta, y buscar la que tenga la fecha máxima. Si hay varias con la misma fecha, devuelve la última.
John mejora la concatenación añadiendo un delimitador entre los valores para evitar falsos positivos (cuando números de depósito y fechas podrían combinarse en coincidencias falsas):
`
=LET(
d; [@Deposito];
rd; PARTIDAS_AGE[Depósito];
rc; PARTIDAS_AGE[Fecha de Cierre];
BUSCARX(d & "-" & MAX((d=rd) rc); rd & "-" & rc; PARTIDAS_AGE[Partida];;;-1)
)
`
También propone una alternativa con LET que busca directamente por fecha de apertura máxima:
`
=LET(
b; PARTIDAS_AGE[Fecha apertura] (PARTIDAS_AGE[Depósito]=[@Deposito]);
SI(MAX(b); BUSCARX(MAX(b); b; PARTIDAS_AGE[Partida];;;-1); "")
)
`
Tanto John como Leo coinciden en que la versión más limpia es la última (con LET), por su claridad y por evitar el problema de concatenaciones sin delimitador.
Técnicas destacadas:
- BUSCARX con modo -1 (búsqueda del último al primero) para obtener el registro más reciente
- Concatenación multicriteria en BUSCARX como alternativa a INDICE+COINCIDIR
- Delimitadores en concatenaciones para evitar falsos positivos
- LET` para nombrar variables y mejorar legibilidad
Más contenido de Excel en InflueXcel
- Reto de Excel: El cumpleaños de Bilbo 🎂 | CONTAR.SI y SUMAR.SI desde cero (Nivel 1) TutorialEn La Comarca se celebra el cumpleaños número 111 de Bilbo Bolsón: cerveza, pasteles, fuegos artificiales… y algún curioso escondido tras el
- ¡Excel PowerQuery Hack! Conexiones con rutas relativas en 10 minutos! Tutorial¿Harto de ajustar las conexiones en PowerQuery cada vez que compartes tu archivo de Excel? 🙄 Convierte las conexiones de PowerQuery con ruta
- Mejora un 90% el rendimiento de Power Query con SQLite TutorialPower Query es una herramienta potente para consolidar, combinar y calcular datos, pero cuando trabajamos con millones de registros y calcul
- Nueva Función IMPORTTEXT TutorialNueva función IMPORTTEXT en Excel!! https://techcommunity.microsoft.com/blog/microsoft365insiderblog/bring-data-into-excel-with-the-new-impo
- ¿Columnas con nombres distintos en Power Query? Tutorial¿Columnas con nombres distintos en Power Query? Aquí tienes la solución definitiva para normalizar tus datos y evitar errores al combinar fi
- BUSCARX con valor devuelto dinámico: elige la columna con un botón o un segmentador CasoUna integrante de la comunidad planteó un reto muy habitual al trabajar con tablas de varias columnas: tiene una lista de municipios con cua
- Saldo acumulado por mes: tres enfoques (REDUCE+BYROW, PIVOTARPOR+acumulado, MMULT) CasoJuan plantea una pregunta que parece sencilla y se acaba convirtiendo en tres clases magistrales sobre cómo recorrer una matriz mes a mes. T
- Mapa de España con burbujas: ubicar variables por provincia usando coordenadas X/Y CasoEsta semana surgió una duda muy visual en el grupo: cómo mostrar dos variables por provincia en un mapa de España — una pintada en intensida
- Regularización trimestral con AGRUPARPOR y ARCHIVOMAKEARRAY: del caos a una fórmula CasoCaso fresquito de la comunidad. Juan plantea un problema contable: tiene una tabla de movimientos (Nombre, Cuenta, Importe, Fecha) y necesit
- Grado de avance por proyecto: despivotar y volver a pivotar por fecha CasoNuevo caso de la comunidad con mucho jugo para los que trabajan con reporting de proyectos. Juan plantea un problema habitual en oficinas té