Cómo devolver un valor a la izquierda de la columna de búsqueda de BUSCARV
Si alguna vez ha intentado devolver un valor que se encuentra físicamente a la izquierda de la columna de búsqueda, rápidamente se dará cuenta de que esta tarea es difícil de realizar con la función BUSCARV. Este es un momento perfecto para ir más allá de la función BUSCARV y explorar las funciones ÍNDICE y COINCIDIR.
Nota: dependiendo de tu versión de Excel, es posible que tengas BUSCAR XL como opción… más información aquí: https://www.excel-university.com/xlookup/
Descripción general
Considere la siguiente captura de pantalla.
Estamos intentando completar la columna CustName del informe. Nos gustaría buscar el CustID en la tabla Clientes y devolver el CustName. El problema es que en el rango de búsqueda, la columna CustName se encuentra a la izquierda de la columna CustID. Es decir, la columna de retorno se encuentra a la izquierda de la columna de búsqueda. BUSCARV es para la derecha, no se puede ir a la izquierda.*
Y esto nos lleva a la razón por la que estamos aquí, para acostumbrarnos a usar la combinación ÍNDICE/COINCIDIR para devolver valores que se encuentran a la izquierda de la columna de búsqueda. Pero espera hay mas. Además de poder devolver valores a la izquierda, esta combinación no sufre otra limitación común de la función BUSCARV. Cuando el tercer argumento de BUSCARV se expresa como un valor entero estático, como 3, una columna insertada entre la columna de búsqueda y la columna de retorno interrumpirá la función. Dado que el tercer argumento se expresa como un número entero, no se adaptará a las inserciones de columnas cuando se inserte entre las columnas de búsqueda y retorno. La combinación INDEX/MATCH no sufre esta limitación. Dado que los argumentos son referencias de rango, Excel ajusta las fórmulas para dar cabida a las inserciones de columnas. Muy bien, basta de hablar, vamos a ello.
FÓSFORO
Veámoslos uno por uno. La función COINCIDIR devuelve la posición relativa de un elemento de la lista. Si le pidiéramos a Excel que COINCIDiera “Jun” en una lista de abreviaturas de meses, devolvería 6. “Abr” devolvería 4. Esta idea se ilustra en la siguiente captura de pantalla.
La sintaxis de la función COINCIDIR es la siguiente:
=COINCIDIR(valor_buscado,matriz_buscada,[tipo_coincidencia])
Dónde :
- valor_buscado es el valor que estamos tratando de encontrar
- lookup_array es donde estamos buscando
- [match_type] suele ser 0 para una coincidencia exacta, pero hay otras opciones para explorar aquí
En nuestra captura de pantalla, usamos la siguiente función para devolver la posición relativa del nombre del mes:
=COINCIDIR(C6,B11:B22,0)
Estamos intentando encontrar la posición relativa de nuestro mes (C6), en la lista de abreviaturas de meses (B11:B22), y cero para una coincidencia exacta.
Solo recuerde, la función COINCIDIR devuelve la posición relativa de un elemento de la lista.
ÍNDICE
La función ÍNDICE devuelve el valor de la celda de un rango en una posición determinada. Técnicamente, hace mucho más que eso, pero como recién estamos calentando, sigamos con esa idea: devuelve un valor de celda de una lista en una posición determinada.
La sintaxis de la función ÍNDICE es la siguiente:
= ÍNDICE (matriz, núm_fila, [núm_columna])
Dónde :
- matriz es el rango que tiene el valor que desea devolver
- row_num es la posición relativa de la fila que tiene el valor que desea devolver
- [column_num] es el número de columna opcional, útil al realizar búsquedas bidimensionales
Lo que haremos es usar la función ÍNDICE para devolver un valor de celda, y anidaremos la función COINCIDIR allí para que pueda indicarle a la función ÍNDICE qué fila tiene el valor que queremos. Nuestra fórmula ÍNDICE/COINCIDENCIA se verá así:
= ÍNDICE (matriz, COINCIDIR (...))
Donde la función COINCIDIR descubre el argumento del número de fila. La función COINCIDIR devuelve el número de fila relativo a la función ÍNDICE.
Considere la siguiente captura de pantalla:
Usamos la función ÍNDICE para devolver un valor de la columna CustName. Para el argumento num_fila, utilizamos la función COINCIDIR para determinar la posición relativa del CustID dentro de la columna CustID.**
La fórmula utilizada en C7 es:
=ÍNDICE($B$16:$B$27,COINCIDENCIA(B7,$C$16:$C$27,0))
Dónde :
- $B$16:$B$27 es la lista que contiene el valor que deseamos devolver, la columna CustName
- MATCH(B7,$C$16:$C$27,0) determina la fila para la función ÍNDICE
- Dónde :
- B7 es el valor que estamos intentando encontrar, nuestro CustID
- $C$16:$C$27 es donde estamos buscando, la columna CustID
- 0 significa coincidencia exacta
La combinación INDEX/MATCH es bastante útil y se puede utilizar para devolver valores que se encuentran a la izquierda de la columna de búsqueda.
Si quieres jugar un poco con estas funciones, no dudes en descargar el archivo IndexMatch Excel que se utilizó para preparar las capturas de pantalla de esta publicación:
Coincidencia de índice
Notas
* Hay una manera muy creativa de hacer que la función BUSCARV vaya a la izquierda, que es usar la función ELEGIR como segundo argumento. ¡Guau, cuando leí la publicación de Richard Schollar en el sitio de Bill Jelen, quedé muy impresionado! ¡Bien hecho!
** Lo que a menudo puede resultar confuso para quienes realizan BUSCARV desde hace mucho tiempo es el orden de los argumentos. BUSCARV comienza con el valor que estamos intentando encontrar. Pensamos en la función BUSCARV de esta manera: ve a buscar esto, coma, aquí, coma, devuelve esto. Cuando se utiliza la combinación ÍNDICE/COINCIDENCIA, el pensamiento se invierte. Primero especificamos la columna que tiene el valor que deseamos devolver. El pensamiento es el siguiente: desde esta columna, devuelva este valor.
Deja una respuesta