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 contenido de Excel en InflueXcel
- Cuenta clientes y cervezas en Excel 🍺 Caso "La Taberna: El Poney Pisador" (Nivel 1) Tutorial🍺 Noche cerrada en Bree. Frodo, Sam, Merry y Pippin cruzan la puerta de El Poney Pisador huyendo de los Jinetes Negros: la sala está a reven
- SUMAR.SI.CONJUNTO en acción con El Señor de los Anillos 🃏 El 21 de La Comarca TutorialLo que practicamos en este caso: • Contar cartas por palo con CONTAR.SI • Sumar valores con condiciones (SUMAR.SI / SUMAR.SI.CONJUNTO) • Apl
- 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
- Reorganizar tablas mensuales: cruzar por persona buscando en vertical y en horizontal CasoNuevo caso interesante de la comunidad. Juan tenía varias tablas mensuales (a veces más de una en el mismo mes) y quería reorganizarlas por
- Un dato de todas las hojas, escrito una sola vez CasoEsta semana surgió en la comunidad un reto muy habitual cuando un libro tiene muchas hojas: mostrar el valor de la celda B3 de cada hoja, in
- Un índice de hojas que se genera solo: HYPERLINK en rangos desbordados CasoEsta semana surgió en la comunidad un pequeño "expediente X". Un miembro llegó tras ver un vídeo con una idea clara en la cabeza: montar una
- Reformatear un código alfanumérico al teclear: de NN1234567 a NN-12345-67 CasoEsta semana surgió en la comunidad una duda muy práctica: cómo conseguir que al escribir un código tipo NN1234567 (dos letras seguidas de si
- Reclasificación contable: duplicar cada fila con una conversión distinta por columna, en un único bloque CasoInteresante reto contable planteado esta semana por un miembro de la comunidad. Juan parte de una tabla de apuntes contables (rango C7:P10)