Excel INDEX MATCH vs. VLOOKUP - ejemplos de fórmulas

  • Compartir Este
Michael Brown

Este tutorial muestra como usar INDEX y MATCH en Excel y como es mejor que VLOOKUP.

En un par de artículos recientes, hicimos un buen esfuerzo para explicar los fundamentos de la función VLOOKUP a los principiantes y proporcionar ejemplos de fórmulas VLOOKUP más complejas a los usuarios avanzados. Y ahora, intentaré si no convencerte de que no uses VLOOKUP, al menos mostrarte una forma alternativa de hacer una búsqueda vertical en Excel.

"¿Para qué necesito eso?", te preguntarás. Porque VLOOKUP tiene numerosas limitaciones que pueden impedirte obtener el resultado deseado en muchas situaciones. Por otro lado, la combinación INDEX MATCH es más flexible y tiene muchas características impresionantes que la hacen superior a VLOOKUP en muchos aspectos.

    Funciones INDEX y MATCH de Excel: conceptos básicos

    Dado que el objetivo de este tutorial es mostrar una forma alternativa de hacer un vlookup en Excel utilizando una combinación de las funciones INDEX y MATCH, no nos detendremos mucho en su sintaxis y usos. Cubriremos sólo lo mínimo necesario para entender la idea general y luego veremos en profundidad ejemplos de fórmulas que revelan todas las ventajas de utilizar INDEX MATCH en lugar de VLOOKUP.

    Función INDEX - sintaxis y utilización

    La función ÍNDICE de Excel devuelve un valor en una matriz basado en los números de fila y columna que especifique. La sintaxis de la función ÍNDICE es sencilla:

    INDEX(matriz, fila_num, [columna_num])

    He aquí una explicación muy sencilla de cada parámetro:

    • matriz - un rango de celdas del que desea devolver un valor.
    • número_de_fila - el número de fila de la matriz de la que desea devolver un valor. Si se omite, se requiere la columna_num.
    • columna_num - el número de columna de la matriz de la que desea devolver un valor. Si se omite, se requiere row_num.

    Para más información, consulte la función ÍNDICE de Excel.

    Y aquí tienes un ejemplo de la fórmula INDEX en su forma más simple:

    =INDEX(A1:C10,2,3)

    La fórmula busca en las celdas A1 a C10 y devuelve el valor de la celda de la 2ª fila y la 3ª columna, es decir, la celda C2.

    Muy fácil, ¿verdad? Sin embargo, al trabajar con datos reales casi nunca sabrás qué fila y qué columna quieres, ahí es donde la función MATCH resulta útil.

    Función MATCH - sintaxis y uso

    La función MATCH de Excel busca un valor de búsqueda en un rango de celdas y devuelve el valor posición relativa de ese valor en el intervalo.

    La sintaxis de la función MATCH es la siguiente:

    MATCH(valor_consulta, matriz_consulta, [tipo_coincidencia])
    • buscar_valor - el número o el valor de texto que busca.
    • matriz_de_busqueda - un rango de celdas en las que se busca.
    • tipo_partido - especifica si se devuelve una coincidencia exacta o la coincidencia más próxima:
      • 1 u omitido - encuentra el mayor valor que es menor o igual que el valor de búsqueda. Requiere ordenar la matriz de búsqueda en orden ascendente.
      • 0 - encuentra el primer valor que es exactamente igual al valor de búsqueda. En la combinación INDEX / MATCH, casi siempre se necesita una coincidencia exacta, por lo que se establece el tercer argumento de la función MATCH a 0.
      • -1 - busca el valor más pequeño que sea mayor o igual que valor_buscado. Requiere ordenar la matriz de búsqueda en orden descendente.

    Por ejemplo, si el intervalo B1:B3 contiene los valores "Nueva York", "París", "Londres", la fórmula siguiente devuelve el número 3, porque "Londres" es la tercera entrada del intervalo:

    =MATCH("Londres",B1:B3,0)

    Para más información, consulte la función MATCH de Excel.

    A primera vista, la utilidad de la función MATCH puede parecer cuestionable. ¿A quién le importa la posición de un valor en un rango? Lo que sí queremos saber es el valor en sí.

    Permítame recordarle que la posición relativa del valor de búsqueda (es decir, los números de fila y columna) es exactamente lo que debe proporcionar a la función número_de_fila y columna_num argumentos de la función INDEX. Como recordarás, Excel INDEX puede encontrar el valor en la unión de una fila y columna dadas, pero no puede determinar qué fila y columna exactamente quieres.

    Cómo utilizar la función INDEX MATCH en Excel

    Ahora que conoces los conceptos básicos, creo que ya ha empezado a tener sentido cómo MATCH e INDEX trabajan juntos. En pocas palabras, INDEX encuentra el valor de búsqueda por números de columna y fila, y MATCH proporciona esos números ¡Eso es todo!

    Para la búsqueda vertical, utilice la función MATCH sólo para determinar el número de fila y suministre el rango de columnas directamente a INDEX:

    ÍNDICE ( para devolver un valor de , MATCH ( valor de búsqueda , columna para mirar hacia arriba , 0))

    ¿Todavía tiene dificultades para entenderlo? Quizá sea más fácil entenderlo con un ejemplo. Suponga que tiene una lista de capitales nacionales y su población:

    Para hallar la población de una determinada capital, por ejemplo la capital de Japón, utiliza la siguiente fórmula INDEX MATCH:

    =INDEX(C2:C10, MATCH("Japón", A2:A10, 0))

    Ahora analicemos qué hace realmente cada componente de esta fórmula:

    • La función MATCH busca el valor de búsqueda "Japón" en el intervalo A2:A10, y devuelve el número 3, porque "Japón" es el tercero en la matriz de búsqueda.
    • El número de fila va directamente al número_de_fila de INDEX indicándole que devuelva un valor de esa fila.

    Así, la fórmula anterior se convierte en un simple INDEX(C2:C,3) que dice que busquemos en las celdas C2 a C10 y saquemos el valor de la 3ª celda de ese rango, es decir, C4 porque empezamos a contar desde la segunda fila.

    Si no desea introducir la ciudad en la fórmula, introdúzcala en una celda, por ejemplo F1, introduzca la referencia de celda en MATCH y obtendrá una fórmula de búsqueda dinámica:

    =INDEX(C2:C10, MATCH(F1,A2:A10,0))

    Nota importante El número de filas del matriz de INDEX debe coincidir con el número de filas de la base de datos matriz_de_busqueda de MATCH, de lo contrario la fórmula producirá un resultado incorrecto.

    Espera, espera... ¿por qué no utilizamos simplemente la siguiente fórmula Vlookup? ¿Qué sentido tiene perder el tiempo intentando descifrar los arcanos vericuetos del MATCH INDEX de Excel?

    =VLOOKUP(F1, A2:C10, 3, FALSE)

    En este caso, no tiene sentido :) Este sencillo ejemplo es sólo para fines de demostración, para que tenga una idea de cómo las funciones INDEX y MATCH trabajan juntas. Otros ejemplos que siguen a continuación le mostrarán el verdadero poder de esta combinación que fácilmente hace frente a muchos escenarios complejos cuando VLOOKUP tropieza.

    Consejos:

    • En Excel 365 y Excel 2021, puede utilizar una fórmula INDEX XMATCH más moderna.
    • Para Google Sheets, consulta ejemplos de fórmulas con INDEX MATCH en este artículo.

    INDEX MATCH vs. VLOOKUP

    A la hora de decidir qué función utilizar para las búsquedas verticales, la mayoría de los gurús de Excel coinciden en que INDEX MATCH es mucho mejor que VLOOKUP. Sin embargo, mucha gente sigue quedándose con VLOOKUP, en primer lugar, porque es más sencilla y, en segundo lugar, porque no comprenden plenamente todas las ventajas de utilizar la fórmula INDEX MATCH en Excel. Sin esa comprensión, nadie está dispuesto a invertir su tiempo en aprender una fórmula más compleja.sintaxis.

    A continuación, voy a señalar las ventajas clave de MATCH INDEX sobre VLOOKUP, y usted decide si es una adición digna de su arsenal de Excel.

    4 razones principales para utilizar INDEX MATCH en lugar de VLOOKUP

    1. Búsqueda de derecha a izquierda. Como cualquier usuario educado sabe, VLOOKUP no puede mirar a su izquierda, lo que significa que su valor de búsqueda siempre debe residir en la columna más a la izquierda de la tabla. INDEX MATCH puede hacer la búsqueda a la izquierda con facilidad! El siguiente ejemplo lo muestra en acción: Cómo Vlookup un valor a la izquierda en Excel.
    2. Inserte o elimine columnas de forma segura. Las fórmulas VLOOKUP se rompen o dan resultados incorrectos cuando se elimina o se añade una nueva columna a una tabla de consulta porque la sintaxis de VLOOKUP requiere especificar el número de índice de la columna de la que se quieren extraer los datos. Naturalmente, cuando se añaden o eliminan columnas, el número de índice cambia.

      Con INDEX MATCH, se especifica el rango de columnas de retorno, no un número de índice. Como resultado, tiene libertad para insertar y eliminar tantas columnas como desee sin preocuparse de actualizar cada fórmula asociada.

    3. No hay límite para el tamaño de un valor de búsqueda. Al utilizar la función VLOOKUP, la longitud total de los criterios de búsqueda no puede superar los 255 caracteres, ya que de lo contrario se producirá el error #VALOR! Por lo tanto, si el conjunto de datos contiene cadenas largas, INDEX MATCH es la única solución que funciona.
    4. Mayor velocidad de procesamiento. Si sus tablas son relativamente pequeñas, apenas habrá diferencias significativas en el rendimiento de Excel. Pero si sus hojas de cálculo contienen cientos o miles de filas y, en consecuencia, cientos o miles de fórmulas, MATCH INDEX funcionará mucho más rápido que VLOOKUP porque Excel tendrá que procesar sólo las columnas de búsqueda y retorno en lugar de toda la matriz de la tabla.

      El impacto de VLOOKUP en el rendimiento de Excel puede ser especialmente notable si su libro de trabajo contiene fórmulas de matriz complejas como VLOOKUP y SUM. La cuestión es que comprobar cada valor de la matriz requiere una llamada separada de la función VLOOKUP. Por lo tanto, cuantos más valores contenga su matriz y cuantas más fórmulas de matriz tenga en un libro de trabajo, más lento será el rendimiento de Excel.

    Excel INDEX MATCH - ejemplos de fórmulas

    Conocidas las razones para aprender la función MATCH INDEX, pasemos a la parte más interesante y veamos cómo puedes aplicar los conocimientos teóricos en la práctica.

    Fórmula INDEX MATCH para buscar de derecha a izquierda

    Como ya se ha mencionado, VLOOKUP no puede mirar a su izquierda. Por lo tanto, a menos que sus valores de búsqueda se encuentren en la columna más a la izquierda, no hay ninguna posibilidad de que una fórmula Vlookup le proporcione el resultado que desea. La función INDEX MATCH de Excel es más versátil y no le importa realmente dónde se encuentran las columnas de búsqueda y retorno.

    Para este ejemplo, añadiremos la columna Rango a la izquierda de nuestra tabla de muestra e intentaremos averiguar qué lugar ocupa la capital rusa, Moscú, en términos de población.

    Con el valor de búsqueda en G1, utilice la siguiente fórmula para buscar en C2:C10 y devolver un valor correspondiente de A2:A10:

    =INDEX(A2:A10,MATCH(G1,C2:C10,0))

    Sugerencia: si vas a utilizar la fórmula INDEX MATCH para más de una celda, asegúrate de bloquear ambos rangos con referencias de celda absolutas (como $A$2:$A$10 y $C$2:4C$10) para que no se distorsionen al copiar la fórmula.

    INDEX MATCH para buscar en filas y columnas

    En los ejemplos anteriores, hemos utilizado INDEX MATCH como sustituto del clásico VLOOKUP para devolver un valor de un rango predefinido de una columna. Pero, ¿qué ocurre si necesita realizar búsquedas en varias filas y columnas? En otras palabras, ¿qué ocurre si desea realizar el llamado matriz o bidireccional ¿Buscar?

    Puede parecer complicado, pero la fórmula es muy similar a la función básica de Excel INDEX MATCH, con una sola diferencia ¿Adivina qué?

    Simplemente, utilice dos funciones MATCH: una para obtener un número de fila y otra para obtener un número de columna. Y felicito a quienes hayan acertado :)

    INDEX (array, MATCH ( valor de vlookup , columna para mirar hacia arriba , 0), MATCH ( valor hlookup , fila para mirar hacia arriba , 0))

    Y ahora, por favor, echa un vistazo a la tabla de abajo y vamos a construir una fórmula INDEX MATCH para encontrar la población (en millones) en un país determinado para un año determinado.

    Con el país objetivo en G1 (valor vlookup) y el año objetivo en G2 (valor hlookup), la fórmula toma esta forma:

    =INDEX(B2:D11, MATCH(G1,A2:A11,0), MATCH(G2,B1:D1,0))

    Cómo funciona esta fórmula

    Siempre que necesite entender una fórmula compleja de Excel, divídala en partes más pequeñas y vea lo que hace cada función individual:

    MATCH(G1,A2:A11,0) - busca en A2:A11 el valor de la celda G1 ("China") y devuelve su posición, que es 2.

    MATCH(G2,B1:D1,0)) - busca a través de B1:D1 para obtener la posición del valor en la celda G2 ("2015"), que es 3.

    Los números de fila y columna anteriores van a los argumentos correspondientes de la función ÍNDICE:

    INDEX(B2:D11, 2, 3)

    Como resultado, se obtiene un valor en la intersección de la 2ª fila y la 3ª columna del rango B2:D11, que es el valor de la celda D3. ¿Fácil? ¡Sí!

    Excel INDEX MATCH para buscar múltiples criterios

    Si ha tenido la oportunidad de leer nuestro tutorial de Excel VLOOKUP, probablemente ya haya probado una fórmula para Vlookup con múltiples criterios. Sin embargo, una limitación importante de ese enfoque es la necesidad de añadir una columna de ayuda. La buena noticia es que la función INDEX MATCH de Excel también puede buscar con dos o más criterios, ¡sin modificar ni reestructurar sus datos de origen!

    Esta es la fórmula genérica INDEX MATCH con criterios múltiples:

    {=INDEX( rango_de_retorno MATCH(1, ( criterios1 = gama1 ) * ( criterios2 = gama2 ), 0))}

    Nota: Se trata de una fórmula de matriz que debe completarse con la combinación de teclas Ctrl + Mayús + Intro.

    En la tabla de ejemplo que aparece a continuación, supongamos que desea hallar el importe en función de 2 criterios, Cliente y Producto .

    La siguiente fórmula INDEX MATCH funciona a las mil maravillas:

    =INDEX(C2:C10, MATCH(1, (F1=A2:A10) * (F2=B2:B10), 0))

    Donde C2:C10 es el rango para devolver un valor, F1 es el criterio1, A2:A10 es el rango para comparar con el criterio1, F2 es el criterio 2, y B2:B10 es el rango para comparar con el criterio2.

    Recuerde introducir la fórmula correctamente pulsando Ctrl + Mayús + Intro, y Excel la encerrará automáticamente entre corchetes como se muestra en la captura de pantalla:

    Si prefiere no utilizar fórmulas de matriz en sus hojas de cálculo, añada una función INDEX más a la fórmula y complétela con una pulsación habitual de Intro:

    Cómo funcionan estas fórmulas

    Las fórmulas utilizan el mismo enfoque que la función básica INDEX MATCH, que examina una sola columna. Para evaluar varios criterios, cree dos o más matrices de valores TRUE y FALSE que representen coincidencias y no coincidencias para cada criterio individual y, a continuación, multiplique los elementos correspondientes de estas matrices. La operación de multiplicación convierte TRUE y FALSE en 1 y 0,La función MATCH con un valor de búsqueda de 1 encuentra el primer "1" en la matriz y pasa su posición a INDEX, que devuelve un valor en esta fila de la columna especificada.

    La fórmula sin matrices se basa en la capacidad de la función INDEX para manejar matrices de forma nativa. El segundo INDEX se configura con 0 número_de_fila para que pase toda la matriz de columnas a MATCH.

    Para más detalles, consulte Excel INDEX MATCH with multiple criteria.

    Excel INDEX MATCH con AVERAGE, MAX, MIN

    Microsoft Excel dispone de funciones especiales para encontrar un valor mínimo, máximo y medio en un rango. Pero, ¿qué ocurre si necesitas obtener un valor de otra celda que esté asociado a esos valores? En ese caso, utiliza la función MAX, MIN o AVERAGE junto con INDEX MATCH.

    INDEX MATCH con MAX

    Para encontrar el mayor valor de la columna D y devolver un valor de la columna C en la misma fila, utilice esta fórmula:

    =INDEX(C2:C10, MATCH(MAX(D2:D10), D2:D10, 0))

    INDEX MATCH con MIN

    Para localizar el valor más pequeño de la columna D y extraer un valor asociado de la columna C, utilice ésta:

    =INDEX(C2:C10, MATCH(MIN(D2:D10), D2:D10, 0))

    INDEX MATCH con AVERAGE

    Para calcular el valor más próximo a la media de D2:D10 y obtener el valor correspondiente de la columna C, utilice esta fórmula:

    =INDEX(C2:C10, MATCH(AVERAGE(D2:D10), D2:D10, -1 ))

    Dependiendo de cómo estén organizados sus datos, proporcione 1 o -1 al tercer argumento (match_type) de la función MATCH:

    • Si su columna de búsqueda (columna D en nuestro caso) está ordenada ascendente ponga 1. La fórmula calculará el mayor valor que sea menos de o igual al valor medio.
    • Si la columna de búsqueda está ordenada descendente introduzca -1. La fórmula calculará el valor más pequeño que sea superior a o igual al valor medio.
    • Si su matriz de búsqueda contiene un valor exactamente igual a la media, puede introducir 0 para la coincidencia exacta. No es necesario ordenar.

    En nuestro ejemplo, las poblaciones de la columna D están ordenadas de forma descendente, por lo que utilizamos -1 para el tipo de coincidencia. Como resultado, obtenemos "Tokio", ya que su población (13.189.000) es la coincidencia más cercana que es mayor que la media (12.269.006).

    Tal vez le interese saber que VLOOKUP también puede realizar este tipo de cálculos, pero como fórmula de matriz: VLOOKUP con PROMEDIO, MÁX, MÍN.

    Utilización de INDEX MATCH con IFNA / IFERROR

    Como probablemente habrá notado, si una fórmula INDEX MATCH en Excel no puede encontrar un valor de búsqueda, produce un error #N/A. Si desea reemplazar la notación de error estándar con algo más significativo, envuelva su fórmula INDEX MATCH en la función IFNA. Por ejemplo:

    =IFNA(INDEX(C2:C10, MATCH(F1,A2:A10,0)), "No se ha encontrado ninguna coincidencia")

    Y ahora, si alguien introduce una tabla de búsqueda que no existe en el rango de búsqueda, la fórmula informará explícitamente al usuario de que no se ha encontrado ninguna coincidencia:

    Si desea detectar todos los errores, no sólo #N/A, utilice la función IFERROR en lugar de IFNA:

    =IFERROR(INDEX(C2:C10, MATCH(F1,A2:A10,0)), "¡Uy, algo salió mal!")

    Tenga en cuenta que, en muchas situaciones, puede no ser aconsejable ocultar todos los errores, ya que le alertarán de posibles fallos en su fórmula.

    Así es como se utilizan INDEX y MATCH en Excel. Espero que nuestros ejemplos de fórmulas te resulten útiles y espero verte en nuestro blog la semana que viene.

    Cuaderno de prácticas para descargar

    Ejemplos de Excel INDEX MATCH (archivo .xlsx)

    Michael Brown es un entusiasta de la tecnología dedicado y apasionado por simplificar procesos complejos utilizando herramientas de software. Con más de una década de experiencia en la industria de la tecnología, ha perfeccionado sus habilidades en Microsoft Excel y Outlook, así como en Google Sheets y Docs. El blog de Michael está dedicado a compartir su conocimiento y experiencia con otros, brindando consejos y tutoriales fáciles de seguir para mejorar la productividad y la eficiencia. Ya sea un profesional experimentado o un principiante, el blog de Michael ofrece información valiosa y consejos prácticos para aprovechar al máximo estas herramientas de software esenciales.