BUSCARX con múltiples columnas: por qué no funciona y 4 alternativas
Juan plantea una duda que muchos han tenido alguna vez: quiere que BUSCARX le devuelva varias columnas a la vez (nombre y apellidos), pero la función solo le devuelve la primera columna del rango indicado. "¿Por qué se para en la primera columna si le digo que devuelva la primera y la segunda?"
El problema de fondo es que BUSCARX no trabaja con arreglos horizontales y verticales al mismo tiempo. Cuando el valor buscado es un rango vertical y la matriz de resultado abarca varias columnas, la función no expande ambas dimensiones como cabría esperar.
La comunidad aportó cuatro enfoques distintos para resolverlo:
Concatenación en la búsqueda (Miki). Si el problema es que necesitas buscar por dos campos (nombre + apellido), puedes concatenarlos como clave de búsqueda y hacer un segundo BUSCARX para la columna adicional. Ojo: hay que vigilar los duplicados, porque dos personas podrían tener el mismo nombre y primer apellido.
ELEGIRFILAS como alternativa. BUSCARX tiene esa limitación con arreglos multidimensionales, pero ELEGIRFILAS no. Puedes obtener los índices de las filas que coinciden con tu búsqueda y luego seleccionar las columnas que necesites del rango completo, todo en una sola fórmula.
Concatenar y separar con LET (solución elegante). Unir las columnas de retorno con un separador dentro de BUSCARX y luego separarlas con TEXTOANTES y TEXTODESPUES:
``
=LET(
_b; BUSCARX(H9:H10; M4:M6; N4:N6 & "-" & O4:O6);
APILARH(TEXTOANTES(_b; "-"); TEXTODESPUES(_b; "-"))
)
`
Esta fórmula busca varios valores a la vez (H9:H10), concatena nombre y apellido con un guion como separador, y luego los vuelve a separar en dos columnas con APILARH. Funciona bien siempre que el separador elegido no aparezca en los datos originales.
FILTRAR en lugar de BUSCARX (John). Para casos donde necesitas devolver varias columnas, FILTRAR` es la alternativa más directa: filtra las filas que cumplen la condición y devuelve todas las columnas que le indiques sin restricción de dimensiones. Si necesitas buscar varios valores a la vez, puedes convertir el criterio en una lista.
El problema: por qué BUSCARX no devuelve varias columnas
Juan quería que BUSCARX le devolviera varias columnas a la vez (nombre y apellidos), pero solo obtenía la primera. "¿Por qué se para en la primera columna si le digo que devuelva la primera y la segunda?"
La causa: BUSCARX no expande a la vez el eje vertical y el horizontal. Cuando el valor buscado es un rango vertical y la matriz de retorno abarca varias columnas, la función no derrama ambas dimensiones como esperarías. La comunidad aportó cuatro alternativas.
1. Concatenar la clave de búsqueda (Miki)
Si necesitas buscar por dos campos (nombre y apellido), concaténalos como clave y haz un segundo BUSCARX para la columna extra. Ojo con los duplicados: dos personas podrían compartir nombre y primer apellido, así que conviene una clave que los distinga.
2. ELEGIRFILAS en vez de BUSCARX
BUSCARX tiene esa limitación con arreglos multidimensionales, pero ELEGIRFILAS no. Puedes obtener los índices de las filas que coinciden y seleccionar del rango completo las columnas que necesites, todo en una sola fórmula.
3. Concatenar y separar con LET (la más elegante)
Une las columnas de retorno con un separador dentro de BUSCARX y sepáralas después con TEXTOANTES y TEXTODESPUES:
=LET(
_b; BUSCARX(H9:H10; M4:M6; N4:N6 & "-" & O4:O6);
APILARH(TEXTOANTES(_b; "-"); TEXTODESPUES(_b; "-"))
)Busca varios valores a la vez (H9:H10), concatena nombre y apellido con un guion, y luego los reparte en dos columnas con APILARH. Funciona siempre que el separador elegido no aparezca en los datos.
4. FILTRAR en lugar de BUSCARX (John)
Cuando necesitas devolver varias columnas, FILTRAR es lo más directo: filtra las filas que cumplen la condición y devuelve todas las columnas sin restricción de dimensiones. Si buscas varios valores a la vez, conviertes el criterio en una lista.
Funciones clave
BUSCARX— búsqueda flexible, pero limitada al expandir dos ejes a la vez.ELEGIRFILAS— selecciona filas por índice, sin esa limitación.LET— guarda el resultado intermedio para separarlo después.TEXTOANTES/TEXTODESPUES— parten un texto por un separador.APILARH— coloca los trozos en columnas contiguas.FILTRAR— devuelve varias columnas de una vez.
Conclusión
La lección de fondo: cuando BUSCARX se queda corto, casi siempre hay una función pensada para ese caso. Si buscas por clave compuesta, concatena; si quieres varias columnas, tira de FILTRAR o ELEGIRFILAS; y si te gusta lo compacto, el truco de concatenar y separar con LET es una pequeña joya. Estos matices salen constantemente en la comunidad de InflueXcel, donde una duda aparentemente básica acaba en cuatro técnicas distintas. Descarga el fichero y pruébalas.
Más casos con estas funciones
Más contenido de Excel en InflueXcel
- Cómo dejar una celda realmente vacía en fórmulas SI, BUSCARX y FILTRAR CasoInteresante problema planteado por un miembro de la comunidad: quiere que sus fórmulas devuelvan una celda realmente vacía cuando no hay res
- Filtro multicriteria dinámico con LET, FILTRAR y LAMBDA CasoHéctor comparte con la comunidad una fórmula avanzada para filtrar una tabla de productos/servicios por múltiples criterios opcionales (clav
- FILTRAR con ELEGIR y BUSCARX para consultas cruzadas entre tablas CasoInteresante problema planteado por Héctor sobre cómo construir una consulta dinámica que combine columnas de una tabla con datos cruzados de
- Por qué ELEGIRFILAS falla con índices vacíos o erróneos CasoUn miembro de la comunidad comparte un problema que a muchos nos ha dado algún dolor de cabeza: intenta usar SI.ND() para manejar errores en
- Filtrar datos por código parcial y crear listas desplegables dependientes CasoRosario pone en práctica las enseñanzas de la comunidad pero se queda atascada: tiene una tabla con códigos jerárquicos (1.01, 1.02, 2.01, 2
- Buscar todos los valores coincidentes cuando BUSCARX solo devuelve uno CasoJuan se encuentra con un problema frecuente: tiene una tabla de búsqueda con claves duplicadas (la A aparece varias veces con valores distin
- Funciones personalizadas en Excel: LET, LAMBDA y recursividad TutorialCómo pasar de una fórmula escrita a mano a una función propia que puedes llamar por su nombre en cualquier libro. Los tres vídeos de esta pá
- FILTRAR en Excel: las 5 dudas más buscadas, resueltas (y una extra: filtrar entre fechas) TutorialLe preguntamos a Copilot cuáles son las 5 dudas que más se buscan sobre FILTRAR y las resolvemos una a una en Excel, cada una con un truco e
- Acumular el saldo en PIVOTARPOR: una función de agregación distinta por columna CasoNuevo caso que empieza con una suposición razonable y acaba en una contraprueba del propio autor. Juan trae un libro mayor en bruto y quiere
- Extraer datos de archivos XML complejos: Power Query, VBA y Power Automate CasoSergio plantea un problema real con datos abiertos del gobierno español: archivos XML de licitaciones públicas con más de 30 niveles de anid