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

  • Comparte Isto
Michael Brown

Este titorial mostra como usar INDEX e MATCH en Excel e como é mellor que VLOOKUP.

Nun par de artigos recentes, fixemos un bo esforzo por explicar os conceptos básicos da función BUSCAR V para principiantes e proporcionar exemplos de fórmulas BUSCAR V máis complexos para usuarios avanzados. E agora, tentarei, se non, evitar que utilices BUSCAR V, polo menos mostrarche unha forma alternativa de facer unha busca vertical en Excel.

"Para que necesito iso?" podes preguntar. Porque VLOOKUP ten numerosas limitacións que poden evitar que obteñas o resultado desexado en moitas situacións. Por outra banda, a combinación INDEX MATCH é máis flexible e ten moitas características fantásticas que a fan superior a VLOOKUP en moitos aspectos.

    Excel INDEX e funcións MATCH: conceptos básicos

    Dado que o obxectivo deste tutorial é demostrar unha forma alternativa de facer unha vlookup en Excel mediante unha combinación de funcións INDEX e MATCH, non nos detendremos moito na súa sintaxe e usos. Cubriremos só o mínimo necesario para comprender a idea xeral e despois analizaremos en profundidade exemplos de fórmulas que revelan todas as vantaxes de usar INDEX MATCH en lugar de VLOOKUP.

    Función INDEX - sintaxe e uso

    A función INDEX de Excel devolve un valor nunha matriz en función dos números de fila e columna que especifique. A sintaxe da función INDEX é sinxela:

    ( criterio1= intervalo1) * ( criterio2= intervalo2), 0))}

    Nota. Esta é unha fórmula matricial que debe completarse co atallo Ctrl + Maiús + Intro.

    Na táboa de exemplo de abaixo, supoñendo que quere atopar a cantidade en función de 2 criterios, Cliente e Produto .

    A seguinte fórmula INDEX MATCH funciona moi ben:

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

    Onde C2:C10 é o intervalo desde o que se devolve un valor, F1 é criterio1, A2:A10 é o intervalo para comparar co criterio 1, F2 é o criterio 2 e B2:B10 é o intervalo para comparar con criterio 2.

    Lembra introducir a fórmula correctamente premendo Ctrl + Maiús + Intro , e Excel encerrarao automaticamente corchetes como se mostra na captura de pantalla:

    Se prefire non usar fórmulas matriciales nas súas follas de traballo, engade unha función INDEX máis á fórmula e complétaa cun hit Intro habitual:

    Como funcionan estas fórmulas

    As fórmulas usan o mesmo enfoque que a función INDEX MATCH básica que analiza unha soa columna. Para avaliar varios criterios, crea dúas ou máis matrices de valores VERDADEIRO e FALSO que representan coincidencias e non coincidencias para cada criterio individual e, a continuación, multiplica os elementos correspondentes destas matrices. A operación de multiplicación converte VERDADEIRO e FALSO en 1 e 0, respectivamente, e produce unha matriz onde os 1 corresponden a filas que coinciden con todos os criterios.A función MATCH cun valor de busca de 1 atopa o primeiro "1" na matriz e pasa a súa posición a INDEX, que devolve un valor nesta fila desde a columna especificada.

    A fórmula non matricial depende de a capacidade da función INDEX para manexar matrices de forma nativa. O segundo INDEX está configurado con 0 row_num para que pase toda a matriz de columnas a MATCH.

    Esta é unha explicación de alto nivel da lóxica da fórmula. Para obter máis información, consulte Excel INDEX MATCH con varios criterios.

    Excel INDEX MATCH con PROMEDIO, MAX, MIN

    Microsoft Excel ten funcións especiais para atopar un valor mínimo, máximo e medio nun rango. Pero que pasa se precisas obter un valor doutra cela asociada a eses valores? Neste caso, use a función MAX, MIN ou AVERAGE xunto con INDEX MATCH.

    INDEX MATCH con MAX

    Para atopar o valor máis grande na columna D e devolver un valor da columna C na columna mesma fila, use esta fórmula:

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

    INDEX MATCH with MIN

    Para localizar o valor máis pequeno na columna D e extraer un valor asociado da columna C, use este :

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

    INDICE MATCH con MEDIA

    Para calcular o valor máis próximo á media en D2:D10 e obter un valor correspondente da columna C, esta é a fórmula usar:

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

    Dependendo de como estean organizados os seus datos, proporcione 1 ou -1 ao terceiro argumento (match_type) dea función MATCH:

    • Se a túa columna de busca (no noso caso a columna D) está ordenada ascendente , pon 1. A fórmula calculará o valor máis grande que sexa menos que ou igual ao valor medio.
    • Se a columna de busca está ordenada descendente , introduce -1. A fórmula calculará o valor máis pequeno que sexa maior que ou igual ao valor medio.
    • Se a matriz de busca contén un valor exactamente igual á media, pode introducir 0 para a coincidencia exacta. Non se precisa ningunha clasificación.

    No noso exemplo, as poboacións da columna D ordénanse en orde descendente, polo que usamos -1 para o tipo de coincidencia. Como resultado, obtemos "Tokio" xa que a súa poboación (13.189.000) é a coincidencia máis próxima que é superior á media (12.269.006).

    Quizais teñas curiosidade por saber que VLOOKUP tamén pode realizar tales cálculos, pero como fórmula matricial: VLOOKUP con AVERAGE, MAX, MIN.

    Utilizando INDEX MATCH con IFNA / IFERROR

    Como probablemente teñas notado, se un INDEX MATCH fórmula en Excel non pode atopar un valor de busca, produce un erro #N/A. Se queres substituír a notación do erro estándar por algo máis significativo, envolve a túa fórmula INDEX MATCH na función IFNA. Por exemplo:

    =IFNA(INDEX(C2:C10, MATCH(F1,A2:A10,0)), "No match is found")

    E agora, se alguén introduce unha táboa de busca que non existe no intervalo de busca, a fórmula informará explícitamente ao usuario de que non hai coincidencia.found:

    Se desexa detectar todos os erros, non só #N/A, use a función IFERROR en lugar de IFNA:

    =IFERROR(INDEX(C2:C10, MATCH(F1,A2:A10,0)), "Oops, something went wrong!")

    Ten en conta que en moitas situacións pode ser imprudente disfrazar todos os erros porque alertan sobre posibles fallos na túa fórmula.

    Así é como usar INDEX e MATCH en Excel. Espero que os nosos exemplos de fórmulas che resulten útiles e agardamos verte no noso blog a próxima semana!

    Practica para descargar

    Exemplos de Excel INDEX MATCH (ficheiro .xlsx)

    INDEX(matriz, número_fila, [núm_columna])

    Aquí tes unha explicación moi sinxela de cada parámetro:

    • matriz - un intervalo de celas que desexa devolver un value from.
    • row_num - o número de fila da matriz desde o que quere devolver un valor. Se se omite, é necesario o número_columna.
    • número_columna - o número de columna da matriz desde o que quere devolver un valor. Se se omite, é necesario row_num.

    Para obter máis información, consulte a función INDEX de Excel.

    E aquí tes un exemplo da fórmula INDEX na súa forma máis sinxela:

    =INDEX(A1:C10,2,3)

    A fórmula busca nas celas A1 a C10 e devolve un valor da cela na 2a fila e na 3a columna, é dicir, a cela C2.

    Moi sinxelo, non? Non obstante, cando traballas con datos reais case nunca saberías que fila e columna queres, aí é onde a función COINCIDIR é útil.

    Función COINCIDIR: sintaxe e uso

    A función COINCIDIR de Excel. busca un valor de busca nun intervalo de celas e devolve a posición relativa dese valor no intervalo.

    A sintaxe da función MATCH é a seguinte:

    MATCH(valor_busca , lookup_array, [match_type])
    • lookup_value : o número ou o valor de texto que está a buscar.
    • lookup_array : un intervalo de celas que se está a buscar. buscado.
    • match_type - especifica se se devolve unha coincidencia exacta ou a coincidencia máis próxima:
      • 1 ou omitido: atopa o valor máis grande que é menor ou igual ao valor de busca. Require ordenar a matriz de busca en orde ascendente.
      • 0: atopa o primeiro valor que é exactamente igual ao valor de busca. Na combinación INDEX / MATCH, case sempre necesitas unha coincidencia exacta, polo que estableces o terceiro argumento da túa función MATCH en 0.
      • -1 - atopa o valor máis pequeno que é maior ou igual a lookup_value. Require ordenar a matriz de busca en orde descendente.

    Por exemplo, se o intervalo B1:B3 contén os valores "Nova York", "París", "Londres", a seguinte fórmula devolve o número 3, porque "Londres" é a terceira entrada do intervalo:

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

    Para obter máis información, consulte a función MATCH de Excel.

    En A primeira vista, a utilidade da función MATCH pode parecer cuestionable. A quen lle importa a posición dun valor nun rango? O que si queremos saber é o valor en si.

    Déixeme lembrar que a posición relativa do valor de busca (é dicir, os números de fila e columna) é exactamente o que necesitas proporcionar ao núm_fila e column_num argumentos da función INDEX. Como lembras, Excel INDEX pode atopar o valor na unión dunha determinada fila e columna, pero non pode determinar que fila e columna queres exactamente.

    Como usar a función INDEX MATCH en Excel

    Agora que coñeces o básico, creo que sixa comezou a ter sentido como MATCH e INDEX funcionan xuntos. En poucas palabras, INDEX atopa o valor de busca por números de columna e fila, e MATCH proporciona eses números. Isto é todo!

    Para a busca vertical, usa a función COINCIDIR só para determinar o número de fila e proporcionar o intervalo de columnas directamente a INDEX:

    INDEX ( columna para devolver un valor de, COINCIDIR ( valor de busca, columna coa que buscar, 0))

    Aínda tes dificultades para descubrir isto? Pode ser máis fácil de entender a partir dun exemplo. Supoña que tes unha lista de capitais nacionais e a súa poboación:

    Para atopar a poboación dunha determinada capital, digamos a capital de Xapón, utiliza a seguinte fórmula de COINCIDENCIA DE ÍNDICE:

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

    Agora, imos analizar o que fai realmente cada compoñente desta fórmula:

    • A función MATCH busca o valor de busca "Xapón" no intervalo A2: A10, e devolve o número 3, porque "Xapón" é o terceiro na matriz de busca.
    • O número de fila vai directamente ao argumento número_fila de INDEX instruíndolle para devolver un valor desa fila.

    Entón, a fórmula anterior convértese nun ÍNDICE simple (C2:C,3) que di buscar nas celas C2 a C10 e tirar o valor da 3a cela nese intervalo, é dicir. C4 porque comezamos a contar dende a segunda fila.

    Non queres codificar a cidade na fórmula? Introdúceo nalgunha cela, digamos F1, proporciona a celareferencia a MATCH e obterá unha fórmula de busca dinámica:

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

    Nota importante! O número de filas no O argumento matriz de INDEX debería coincidir co número de filas do argumento matriz_busca de MATCH, se non, a fórmula producirá un resultado incorrecto.

    Espere, agarde... por que non Non usamos simplemente a seguinte fórmula de Vlookup? De que serve perder o tempo intentando descubrir os arcanos xiros de Excel MATCH INDEX?

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

    Neste caso, non ten sentido :) Este sinxelo exemplo é só para fins de demostración, para que teñas unha idea de como funcionan xuntas as funcións INDEX e MATCH. Outros exemplos que se indican a continuación mostraranche o poder real desta combinación que se enfronta facilmente a moitos escenarios complexos cando BUSCAR V tropeza.

    Consellos:

    • En Excel 365 e Excel 2021, pode usar unha fórmula INDEX XMATCH máis moderna.
    • Para Google Sheets, consulte neste artigo exemplos de fórmulas con INDEX MATCH.

    INDEX MATCH vs. VLOOKUP

    Cando ao decidir que función usar para as buscas verticais, a maioría dos gurús de Excel coinciden en que INDEX MATCH é moito mellor que VLOOKUP. Non obstante, moitas persoas aínda quedan con VLOOKUP, en primeiro lugar, porque é máis sinxelo e, en segundo lugar, porque non comprenden completamente todos os beneficios de usar a fórmula INDEX MATCH en Excel. Sen tal entendemento ninguén está disposto a investir o seu tempo para aprenderunha sintaxe máis complexa.

    A continuación, indicarei as principais vantaxes de MATCH INDEX sobre VLOOKUP, e ti decides se é unha adición digna ao teu arsenal de Excel.

    4 razóns principais para usar INDEX MATCH en lugar de VLOOKUP

    1. Busca da dereita á esquerda. Como sabe calquera usuario educado, VLOOKUP non pode mirar á súa esquerda, o que significa que o seu valor de busca debe residir sempre na columna máis esquerda de a mesa. INDEX MATCH pode facer a busca á esquerda con facilidade! O seguinte exemplo móstrao en acción: Como buscar un valor á esquerda en Excel.
    2. Insire ou elimina columnas de forma segura. As fórmulas de BUSCAR V rompen ou ofrecen resultados incorrectos cando se fai unha columna nova. eliminado ou engadido a unha táboa de busca porque a sintaxe de VLOOKUP require especificar o número de índice da columna da que quere extraer os datos. Por suposto, cando engades ou eliminas columnas, o número de índice cambia.

      Con INDEX MATCH, especifica o intervalo da columna de retorno, non un número de índice. Como resultado, pode inserir e eliminar tantas columnas como queira sen preocuparse de actualizar todas as fórmulas asociadas.

    3. Non hai límite para o tamaño dun valor de busca. Cando se utiliza a función BUSCAR V, a lonxitude total dos seus criterios de busca non pode exceder os 255 caracteres, se non, acabará tendo o #VALOR ! erro. Polo tanto, se o seu conxunto de datos contén cadeas longas, INDEX MATCH é o único que funcionasolución.
    4. Maior velocidade de procesamento. Se as túas táboas son relativamente pequenas, dificilmente haberá diferenzas significativas no rendemento de Excel. Pero se as túas follas de traballo conteñen centos ou miles de filas e, en consecuencia, centos ou miles de fórmulas, MATCH INDEX funcionará moito máis rápido que BUSCAR V porque Excel terá que procesar só as columnas de busca e devolución en lugar de toda a matriz da táboa.

      O impacto de BUSCARV no rendemento de Excel pode ser especialmente notable se o teu libro de traballo contén fórmulas de matriz complexas como BUSCARV e SUMA. O punto é que comprobar cada valor da matriz require unha chamada separada da función BUSCAR V. Polo tanto, cantos máis valores conteña a súa matriz e máis fórmulas de matriz teña nun libro de traballo, máis lento será Excel.

    Coincidencia de índices de Excel: exemplos de fórmulas

    Coñecendo o razóns para aprender a función ÍNDICE DE COINCIDENCIA, imos á parte máis interesante e vexamos como podes aplicar os coñecementos teóricos na práctica.

    Fórmula de COINCIDENCIAR ÍNDICE para buscar de dereita a esquerda

    Como xa mencionado, BUSCAR V non pode mirar á esquerda. Polo tanto, a menos que os seus valores de busca sexan a columna máis á esquerda, non hai ningunha posibilidade de que unha fórmula Vlookup che proporcione o resultado que queres. A función INDEX MATCH en Excel é máis versátil e realmente non lle importa onde se atopan as columnas de busca e de retorno.

    Para este exemplo,engadiremos a columna Rango á esquerda da nosa táboa de mostra e tentaremos descubrir como se clasifica a capital rusa, Moscova, en termos de poboación.

    Co valor de busca en G1, utiliza a seguinte fórmula para buscar en C2:C10 e devolve o valor correspondente de A2:A10:

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

    Consello. Se pensas usar a túa fórmula de COINCIDENCIA DE ÍNDICE para máis dunha cela, asegúrate de bloquear ambos intervalos con referencias absolutas de cela (como $A$2:$A$10 e $C$2:4C$10) para que non se distorsionen cando copiando a fórmula.

    INDEX MATCH MATCH para buscar en filas e columnas

    Nos exemplos anteriores, usamos INDEX MATCH como substituto da BUSCAR V clásica para devolver un valor dunha columna predefinida rango. Pero e se precisa buscar en varias filas e columnas? Noutras palabras, que pasa se queres realizar a chamada busca de matriz ou bidireccional ?

    Isto pode parecer complicado, pero a fórmula é moi semellante á función básica INDEX MATCH de Excel, con só unha diferenza. Adiviña que?

    Simplemente, utiliza dúas funcións MATCH: unha para obter un número de fila e outra para obter un número de columna. E felicito a aqueles de vostedes que acertaron :)

    INDEX (matriz, MATCH ( valor de busca v, columna para buscar, 0), MATCH ( hlookup valor, fila para buscar, 0))

    E agora, bótalle un ollo á táboa de abaixo e creemos unha COINCIDENCIA DE ÍNDICEfórmula para atopar a poboación (en millóns) nun determinado país para un ano determinado.

    Co país de destino en G1 (valor de busca v) e o ano de destino en G2 (valor de busca), a fórmula toma esta forma :

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

    Como funciona esta fórmula

    Sempre que necesites comprender unha fórmula complexa de Excel, divídea en partes máis pequenas e mira o que fai cada función individual:

    MATCH(G1,A2:A11,0) : busca en A2:A11 o valor da cela G1 ("China") e devolve a súa posición, que é 2.

    MATCH(G2,B1:D1,0)) : busca a través B1:D1 para obter a posición do valor na cela G2 ("2015"), que é 3.

    Os números de fila e columna anteriores van aos argumentos correspondentes da función INDEX:

    INDEX(B2:D11, 2, 3)

    Como resultado, obtén un valor na intersección da 2a fila e a 3a columna no intervalo B2:D11, que é o valor da cela D3. Fácil? Si!

    Excel INDEX MATCH para buscar varios criterios

    Se tivo a oportunidade de ler o noso tutorial de Excel VLOOKUP, probablemente xa probara unha fórmula para Vlookup con varios criterios. Non obstante, unha limitación significativa deste enfoque é a necesidade de engadir unha columna auxiliar. A boa noticia é que a función INDEX MATCH de Excel tamén pode buscar con dous ou máis criterios, sen modificar nin reestruturar os datos de orixe!

    Aquí está a fórmula xenérica INDEX MATCH con varios criterios:

    {=INDEX( intervalo_retorno, MATCH(1,

    Michael Brown é un entusiasta da tecnoloxía dedicada á súa paixón por simplificar procesos complexos mediante ferramentas de software. Con máis dunha década de experiencia na industria tecnolóxica, perfeccionou as súas habilidades en Microsoft Excel e Outlook, así como en Follas de cálculo e Documentos de Google. O blog de Michael está dedicado a compartir o seu coñecemento e experiencia con outros, proporcionando consellos e titoriais fáciles de seguir para mellorar a produtividade e a eficiencia. Tanto se es un profesional experimentado como un principiante, o blog de Michael ofrece valiosas ideas e consellos prácticos para sacar o máximo proveito destas ferramentas de software esenciais.