BUSCARX Devolver Múltiples Columnas
Descargar el Libro de Ejemplo
Este tutorial demostrará cómo devolver múltiples columnas utilizando BUSCARX en Excel. Si su versión de Excel no soporta BUSCARX, lea cómo devolver múltiples columnas usando BUSCARV en su lugar.
BUSCARX Devuelve Columnas Consecutivas
Una ventaja de la función BUSCARX es que puede devolver varias columnas consecutivas a la vez. Para ello, introduzca el rango de columnas consecutivas en la matriz de retorno, y devolverá todas las columnas.
=BUSCARX(F3;B3:B7;C3:D7)
Observe que aquí nuestra matriz de retorno es de dos columnas (C y D), y por lo tanto se devuelven 2 columnas.
BUSCARX-FILTRAR Devuelve Columnas No Consecutivas
Aunque la función BUSCARX puede devolver varias columnas consecutivas, no puede devolver columnas no adyacentes. Para devolver columnas no adyacentes, podemos utilizar la función FILTRAR.
=BUSCARX(F3;C3:C7;FILTRAR(B3:D7;{1,0,1}))
Repasemos la fórmula:
Función FILTRAR
La función FILTRAR se utiliza habitualmente para filtrar filas, pero también puede utilizarse para filtrar columnas. Para ello, introducimos una matriz horizontal de unos(1) (VERDADERO) y ceros(0) (FALSO) con el mismo número de columnas de la matriz de entrada (1er argumento). Las columnas que coinciden con ceros(0) se filtran mientras que las columnas que coinciden con 1s se devuelven.
=FILTRAR(B3:D7;{1,0,1})
Función BUSCARX
La salida de la función FILTRAR se utiliza como matriz de retorno de nuestro BUSCARX.
=BUSCARX(F3;C3:C7;H3:I7)
Combinando todas las funciones se obtiene nuestra fórmula original:
=BUSCARX(F3;C3:C7;FILTRAR(B3:D7;{1,0,1}))
BUSCARX-FILTRAR-CONTAR.SI – Devuelve las columnas no adyacentes
En lugar de seleccionar manualmente las columnas a filtrar, podemos utilizar la función CONTAR.SI para determinar automáticamente las columnas que se devolverán y filtrarán.
=BUSCARX(F3;C3:C7;FILTRAR(B3:D7;CONTAR.SI(G2:H2;B2:D2)))
Repasemos la fórmula:
Función CONTAR.SI
Primero, utilicemos la función CONTAR.SI para contar la instancia de cada cabecera de origen (por ejemplo, B2:D2) de las cabeceras de salida (por ejemplo, M2:N2).
=CONTAR.SI(M2:N2;B2:D2)
Función FILTRAR
El resultado del array de la función CONTAR.SI se utiliza entonces como condición de filtrado para filtrar las columnas.
=FILTRAR(B3:D7;H3:J3)
Función BUSCARX
Por último, podemos utilizar el resultado de la función FILTRAR en la función BUSCARX para devolver las columnas que queremos.
=BUSCARX(F3;C3:C7;K3:L7)
Combinando todas las funciones se obtiene nuestra fórmula original
=BUSCARX(F3;C3:C7;FILTRAR(B3:D7;CONTAR.SI(G2:H2;B2:D2)))
BUSCARX-ELEGIR Devuelve columnas en distinto orden
La fórmula BUSCARX-FILTRAR-CONTAR.SI puede devolver columnas no adyacentes, pero ¿qué pasa si queremos devolver alguna columna en un orden diferente? Para resolver esto, vamos a utilizar la función ELEGIR.
=BUSCARX(F3;B3:B7;ELEGIR({2,1};C3:C7;D3:D7))
Repasemos la fórmula:
Función ELEGIR
En primer lugar, utilizamos la función ELEGIR para unir las columnas en un orden especificado en una matriz.
=ELEGIR({2,1};C3:C7;D3:D7)
Nota: Introducimos las columnas que queremos por separado en la función ELEGIR(por ejemplo, C3:C7, D3:D7), y las ordenamos utilizando el índice_num (primer argumento).
Función BUSCARX
El array resultante de la Función ELEGIR se utiliza entonces como array de retorno.
=BUSCARX(F3;B3:B7;H3:I7)
Combinando todas las funciones se obtiene nuestra fórmula original:
=BUSCARX(F3;B3:B7;ELEGIR({2,1};C3:C7;D3:D7))
BUSCARX-CHOOSECOLS Devuelve las columnas en diferente orden
La fórmula BUSCARX-ELEGIR se vuelve larga y tediosa si tenemos muchas columnas que devolver. Por suerte, hay una nueva función de matriz (actualmente en la versión BETA de Excel 365) que es más conveniente que la función ELEGIR- Función CHOOSECOLS.
=BUSCARX(F3,B3:B7,CHOOSECOLS(B3:D7,3,2))
Veamos la fórmula:
Función CHOOSECOLS
A diferencia de la Función ELEGIR donde unimos las columnas en un orden especificado, la Función CHOOSECOLS devuelve las columnas que seleccionamos en el orden que especificamos.
=CHOOSECOLS(B3:D7,3,2)
Nota: Los números que especificamos en los argumentos col_num (empezando por el2º argumento) son los números relativos de las columnas del array dado (por ejemplo, B3:D7).
Función BUSCARX
Finalmente, podemos utilizar la función BUSCARX con el resultado de la función CHOOSECOLS.
=BUSCARX(F3,B3:B7,H3:I7)
Combinando todas las funciones se obtiene nuestra fórmula original:
=BUSCARX(F3,B3:B7,CHOOSECOLS(B3:D7,3,2))
BUSCARX-CHOOSECOLS-COINCIDIR Devuelve las columnas en diferente orden
En lugar de seleccionar manualmente las columnas y su orden, podemos utilizar la función COINCIDIR para determinar automáticamente las columnas y su orden que requiere la tarea.
=BUSCARX(F3,B3:B7,CHOOSECOLS(B3:D7,COINCIDIR(G2:H2,B2:D2,0))
Repasemos la fórmula:
Función COINCIDIR
En primer lugar, utilizamos la función COINCIDIR para determinar las posiciones relativas de las columnas de cada cabecera de salida a partir de las cabeceras de origen.
=COINCIDIR(L2:M2,B2:D2,0)
Función CHOOSECOLS
Ahora que tenemos las posiciones de las columnas seleccionadas, podemos utilizar la función CHOOSECOLS para devolver las columnas seleccionadas en un array.
=CHOOSECOLS(B3:D7,H3:I3)
Función BUSCARX
El último paso es alimentar el resultado de la función CHOOSECOLS al array de retorno de la función BUSCARX.
=BUSCARX(F3,B3:B7,J3:K7)
Combinando todas las funciones se obtiene nuestra fórmula original:
=BUSCARX(F3,B3:B7,CHOOSECOLS(B3:D7,COINCIDIR(G2:H2,B2:D2,0))