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