INDEX MATCH MATCH a Excel per a la cerca bidimensional

  • Comparteix Això
Michael Brown

El tutorial mostra algunes fórmules diferents per dur a terme una cerca bidimensional a Excel. Només cal que mireu les alternatives i trieu el vostre favorit :)

Quan cerqueu alguna cosa als vostres fulls de càlcul d'Excel, la majoria de vegades ho buscareu verticalment en columnes o horitzontalment en files. Però de vegades cal mirar entre files i columnes. En altres paraules, pretén trobar un valor a la intersecció d'una determinada fila i columna. Això s'anomena cerca de matrius (també conegut com 2-dimensional o cerca bidireccional ), i aquest tutorial mostra com fer-ho de 4 maneres diferents.

    Fórmula d'EXCEL INDEX MATCH MATCH

    La manera més popular de fer una cerca bidireccional a Excel és utilitzant INDEX MATCH MATCH. Aquesta és una variació de la fórmula clàssica INDEX MATCH a la qual afegiu una funció més MATCH per obtenir els números de fila i columna:

    INDEX ( data_array, MATCH ( vlookup_value, lookup_column_range, 0), MATCH ( hlookup value, lookup_row_range, 0))

    Com a exemple, fem una fórmula per extreure una població d'un determinat animal en un any determinat de la taula següent. Per començar, definim tots els arguments:

    • Data_array - B2:E4 (cel·les de dades, sense incloure les capçaleres de files i columnes)
    • Vlookup_value - H1 (animal objectiu)
    • Interval_de_columnes de cerca - A2:A4 (capçaleres de fila: noms d'animals) -A3:A4
    • Valor_de_cerca - H2 (any objectiu)
    • Interval_de_fila_de_cerca - B1:E1 (capçaleres de columnes: anys)

    Poseu tots els arguments junts i obtindreu aquesta fórmula per a la cerca bidireccional:

    =INDEX(B2:E4, MATCH(H1, A2:A4, 0), MATCH(H2, B1:E1, 0))

    Com funciona aquesta fórmula

    Tot i que pot semblar una mica complexa a primera vista, la lògica de la fórmula és realment senzilla i fàcil d'entendre. La funció INDEX recupera un valor de la matriu de dades basat en els números de fila i columna, i dues funcions MATCH proporcionen aquests números:

    INDEX(B2:E4, row_num, column_num)

    Aquí, aprofitem la capacitat de MATCH(lookup_value, lookup_array, [match_type]) per tornar una posició relativa de lookup_value a lookup_array .

    Per tant, per obtenir el número de fila, cerquem per a l'animal d'interès (H1) a les capçaleres de fila (A2:A4):

    MATCH(H1, A2:A4, 0)

    Per obtenir el número de columna, cerquem l'any objectiu (H2) a les capçaleres de columna (B1:E1):

    MATCH(H2, B1:E1, 0)

    En ambdós casos, busquem la concordança exacta establint el tercer argument a 0.

    En aquest exemple, retorna la primera PARTIDA. 2 perquè el nostre valor de cerca virtual (ós polar) es troba a A3, que és la segona cel·la d'A2:A4. La segona MATCH retorna 3 perquè el valor de cerca (2000) es troba a D1, que és la 3a cel·la de B1:E1.

    Tenint en compte l'anterior, la fórmula es redueix a:

    INDEX(B2:E4, 2, 3)

    I retorna un valor a la intersecció de la 2a fila i la 3a columna de la matriu de dades B2:E4, que és unvalor a la cel·la D3.

    Fórmula CERCA V i COINCIDENCIA per a la cerca bidireccional

    Una altra manera de fer una cerca bidimensional a Excel és mitjançant una combinació de funcions CERCA V i COINCIDENCIA:

    VLOOKUP( vlookup_value , table_array , MATCH( hlookup_value , lookup_row_range , 0), FALSE)

    Per a la nostra taula de mostra , la fórmula pren la forma següent:

    =VLOOKUP(H1, A2:E4, MATCH(H2, A1:E1, 0), FALSE)

    On:

    • Matriu_taula - A2:E4 (cel·les de dades incloses les capçaleres de fila)
    • Vlookup_value - H1 (animal objectiu)
    • Lookup_value - H2 (any objectiu)
    • Lookup_row_range - A1:E1 (capçaleres de columnes: anys)

    Com funciona aquesta fórmula

    El nucli de la fórmula és la funció BUSCARV configurada per a la coincidència exacta (l'últim argument establert en FALSE), que cerca el valor de cerca (H1) a la primera columna de la matriu de la taula (A2:E4) i retorna un valor d'una altra columna de la mateixa fila. Per determinar de quina columna voleu retornar un valor, utilitzeu la funció MATCH que també està configurada per a la coincidència exacta (l'últim argument establert en 0):

    MATCH(H2, A1:E1, 0)

    MATCH cerca el valor a H2 a les capçaleres de columna (A1:E1) i retorna la posició relativa de la cel·la trobada. En el nostre cas, l'any objectiu (2010) es troba a E1, que és el cinquè a la matriu de cerca. Per tant, el número 5 va a l'argument col_index_num de BUSCAR V:

    VLOOKUP(H1, A2:E4, 5, FALSE)

    CERCA V l'agafa des d'allà i troba uncoincidència exacta amb el seu valor de cerca a A2 i retorna un valor de la 5a columna de la mateixa fila, que és la cel·la E2.

    Nota important! Perquè la fórmula funcioni correctament, table_array (A2:E4) de VLOOKUP i lookup_array de MATCH (A1:E1) han de tenir el mateix nombre de columnes, en cas contrari, el nombre passat per MATCH a col_index_num serà incorrecte (no correspondrà a la posició de la columna a table_array ).

    Funció XLOOKUP per buscar en files i columnes

    Recentment, Microsoft ha introduït una funció més a Excel que pretén substituir totes les funcions de cerca existents, com ara VLOOKUP, HLOOKUP i INDEX MATCH. Entre altres coses, BUSCAR XL pot mirar la intersecció d'una fila i una columna específiques:

    BUSCAR XL( valor_cerca_v , interval_columna_cerca_v , BUSCAR XL( valor_cerca_h , hlookup_row_range , data_array ))

    Per al nostre conjunt de dades de mostra, la fórmula és la següent:

    =XLOOKUP(H1, A2:A4, XLOOKUP(H2, B1:E1, B2:E4))

    Nota. Actualment XLOOKUP és una funció beta, que només està disponible per als subscriptors d'Office 365 que formen part del programa Office Insiders.

    Com funciona aquesta fórmula

    La fórmula utilitza la capacitat de XLOOKUP per retornar un fila o columna sencera. La funció interna cerca l'any objectiu a la fila de capçalera i retorna tots els valors d'aquest any (en aquest exemple, per a l'any 1980). Aquests valors van a l'argument return_array de l'exteriorXLOOKUP:

    XLOOKUP(H1, A2:A4, {22000;25000;700}))

    La funció XLOOKUP externa cerca l'animal objectiu a les capçaleres de les columnes i retorna el valor a la mateixa posició de return_array.

    Fórmula SUMPRODUCT per a dos -way lookup

    La funció SUMPRODUCT és com un ganivet suís a Excel: pot fer tantes coses més enllà del seu propòsit designat, especialment quan es tracta d'avaluar diversos criteris.

    Per buscar-ne dos. criteris, en files i columnes, utilitzeu aquesta fórmula genèrica:

    SUMPRODUCT( vlookup_column_range = vlookup_value ) * ( hlookup_row_range = hlookup_value ), data_array )

    Per fer una cerca bidireccional al nostre conjunt de dades, la fórmula és la següent:

    =SUMPRODUCT((A2:A4=H1) * (B1:E1=H2), B2:E4)

    La sintaxi següent també funcionarà:

    =SUMPRODUCT((A2:A4=H1) * (B1:E1=H2) * B2:E4)

    Com funciona aquesta fórmula

    Al cor de la fórmula, comparem dos valors de cerca amb les capçaleres de fila i columna (l'animal objectiu a H1 amb tots els animals). noms a A2:A4 i l'any objectiu a H2 contra tots els anys a B1:E1):

    (A2:A4=H1) * (B1:E1=H2)

    Aquesta res ults en 2 matrius de valors VERDADERS i FALS, on els VERDADERS representen coincidències:

    {FALSE;FALSE;TRUE} * {FALSE,TRUE,FALSE,FALSE}

    L'operació de multiplicació obliga els valors VERDADERS i FALS a 1 i 0 i produeix una matriu bidimensional de 4 columnes i 3 files (les files estan separades per punt i coma i cada columna de dades per una coma):

    {0,0,0,0;0,0,0,0;0,1,0,0}

    Les funcions SUMPRODUCT multiplica els elements de la matriu anterior pels elements deB2:E4 a les mateixes posicions:

    {0,0,0,0;0,0,0,0;0,1,0,0} * {22000,13800,8500,3500;25000,23000,22000,20000;700,2000,2300,2500}

    I com que la multiplicació per zero dóna zero, només sobreviu l'element corresponent a 1 de la primera matriu:

    SUMPRODUCT({0,0,0,0;0,0,0,0;0,2000,0,0})

    Finalment, SUMPRODUCT suma els elements de la matriu resultant i retorna un valor de 2000.

    Nota. Si la vostra taula té més d'una capçalera de fila o columna amb el mateix nom, la matriu final contindrà més d'un nombre diferent de zero, i tots aquests números se sumaran. Com a resultat, obtindreu una suma de valors que compleixen ambdós criteris. És el que fa que la fórmula SUMPRODUCT sigui diferent de INDEX MATCH MATCH i VLOOKUP, que retornen la primera coincidència trobada.

    Cerca de matrius amb intervals amb nom (intersecció explícita)

    Una manera més increïblement senzilla de fer-ho una cerca de matriu a Excel és utilitzant intervals amb nom. A continuació s'explica com:

    Part 1: Anomena columnes i files

    La manera més ràpida d'anomenar cada fila i cada columna de la taula és aquesta:

    1. Seleccioneu tota la taula (A1:E4 en el nostre cas).
    2. A la pestanya Fórmules , al grup Noms definits , feu clic a Crea. des de Selecció o premeu la drecera Ctrl + Maj + F3.
    3. Al quadre de diàleg Crea noms a partir de la selecció , seleccioneu Fila superior i Esquerra. columna i feu clic a D'acord.

    Això crea automàticament noms basats en les capçaleres de fila i columna. Tanmateix, hi ha un parell d'advertències:

    • Si la vostra columna i/oLes capçaleres de files són números o contenen caràcters específics que no es permeten als noms d'Excel, no es crearan els noms d'aquestes columnes i files. Per veure una llista de noms creats, obriu el Gestor de noms ( Ctrl + F3 ). Si falten alguns noms, definiu-los manualment tal com s'explica a Com anomenar un interval a Excel.
    • Si algunes de les capçaleres de files o columnes contenen espais, els espais se substituiran per guions baixos, per exemple, Ós_polar .

    Per a la nostra taula d'exemple, Excel va crear automàticament només els noms de les files. Els noms de les columnes s'han de crear manualment perquè les capçaleres de les columnes són números. Per superar-ho, només podeu introduir els números amb guions baixos, com ara _1990 .

    Com a resultat, tenim els següents intervals de nom:

    Part 2 : Feu una fórmula de cerca de matriu

    Per extreure un valor a la intersecció d'una fila i una columna determinades, només cal que escriviu una de les fórmules genèriques següents en una cel·la buida:

    = nom_fila column_name

    O viceversa:

    = column_name row_name

    Per exemple, per obtenir la població de balenes blaves el 1990 , la fórmula és tan senzilla com:

    =Blue_whale _1990

    Si algú necessita instruccions més detallades, els passos següents us guiaran pel procés:

    1. En una cel·la on voleu que aparegui el resultat, escriviu el signe d'igualtat (=).
    2. Comenceu a escriure el nom de la fila objectiu, per exemple, Blue_whale . DesprésHeu escrit un parell de caràcters, Excel mostrarà tots els noms existents que coincideixin amb la vostra entrada. Feu doble clic al nom desitjat per introduir-lo a la fórmula:
    3. Després del nom de la fila, escriviu un espai , que funciona com a operador d'intersecció a aquest cas.
    4. Introduïu el nom de la columna de destinació ( _1990 en el nostre cas).
    5. Tan aviat com s'introdueixin els noms de fila i columna, Excel ressaltarà la fila i la columna corresponents a la taula i premeu Intro per completar la fórmula:

    La vostra cerca de matriu s'ha acabat i la captura de pantalla següent mostra el resultat:

    Així és com es cerca en files i columnes a Excel. Us agraeixo la lectura i esperem veure-us al nostre blog la setmana vinent!

    Descàrregues disponibles

    Llibre de treball d'exemple de cerca en 2 dimensions

    Michael Brown és un entusiasta de la tecnologia dedicat amb una passió per simplificar processos complexos mitjançant eines de programari. Amb més d'una dècada d'experiència en la indústria tecnològica, ha perfeccionat les seves habilitats en Microsoft Excel i Outlook, així com en Google Sheets i Docs. El bloc de Michael es dedica a compartir els seus coneixements i experiència amb altres persones, oferint consells i tutorials fàcils de seguir per millorar la productivitat i l'eficiència. Tant si sou un professional experimentat com si sou un principiant, el bloc de Michael ofereix valuoses idees i consells pràctics per treure el màxim profit d'aquestes eines de programari essencials.