Taula de continguts
El tutorial presenta XLOOKUP: la nova funció per a la cerca vertical i horitzontal a Excel. La cerca a l'esquerra, l'última coincidència, la cerca visual amb diversos criteris i moltes més coses que abans requerien un títol de ciències de coets per aconseguir ara s'han tornat tan fàcils com ABC.
Sempre que necessiteu cercar a Excel. , quina funció utilitzaríeu? És una CERCA V de la pedra angular o la CERCA HLOS de germà horitzontal? En un cas més complex, confiaràs en la combinació canònica INDEX MATCH o confiaràs la feina a Power Query? La bona notícia és que ja no podeu triar: tots aquests mètodes estan deixant pas a un successor més potent i versàtil, la funció XLOOKUP.
Com és millor XLOOKUP? De moltes maneres! Pot mirar verticalment i horitzontalment, a l'esquerra i a dalt, cercar amb diversos criteris i fins i tot retornar una columna o una fila sencera de dades, no només un valor. Microsoft ha trigat més de 3 dècades, però finalment han aconseguit dissenyar una funció robusta que supera molts errors frustrants i debilitats de BUSCAR V.
Quin és el problema? Ai, n'hi ha un. La funció CERCA XL només està disponible a Excel per a Microsoft 365, Excel 2021 i Excel per al web.
Funció BUSCAR XL d'Excel: sintaxi i utilitza
La funció BUSCAR XL a Excel cerca un interval o una matriu per a un valor especificat i retorna el valor relacionat des d'una altra columna. Pot buscar tots dosrecuperar totes les dades relatives al venedor d'interès (F2). El que heu de fer és proporcionar un interval, no una sola columna o fila, per a l'argument return_array :
=XLOOKUP(F2, A2:A7, B2:D7)
Introduïu la fórmula a la part superior esquerra. cel·la de l'interval de resultats i Excel vessa automàticament els resultats a les cel·les en blanc adjacents. En el nostre cas, la matriu de retorn (B2:D7) inclou 3 columnes ( Data , Item i Import ), i els tres valors es retornen a l'interval G2:I2.
Si preferiu organitzar els resultats verticalment en una columna, niu XLOOKUP a la funció TRANSPOSE per capgirar la matriu retornada:
=TRANSPOSE(XLOOKUP(G1, A2:A7, B2:D7))
De manera similar, podeu retornar una columna sencera de dades, per exemple, la columna Import . Per això, utilitzeu la cel·la F1 que contingui "Quantitat" com a valor_de_cerca , l'interval A1:D1 que conté les capçaleres de columna com a matriu_de_cerca i l'interval A2:D7 que conté totes les dades com a matriu_retorn .
=XLOOKUP(F1, A1:D1, A2:D7)
Nota. Com que s'emplenen diversos valors a les cel·les veïnes, assegureu-vos de tenir prou cel·les en blanc a la dreta o avall. Si Excel no troba prou cel·les buides, un #SPILL! es produeix un error.
Consell. XLOOKUP no només pot retornar diverses entrades, sinó que també les pot substituir per altres valors que especifiqueu. Un exemple d'aquesta substitució massiva es pot trobar aquí: Com cercar i substituir diversos valors amb XLOOKUP.
XLOOKUP ambmúltiples criteris
Un altre gran avantatge de XLOOKUP és que gestiona matrius de manera nativa. A causa d'aquesta capacitat, podeu avaluar diversos criteris directament a l'argument lookup_array :
XLOOKUP(1, ( criteria_range1 = criteria1 ) * ( criteria_range2 = criteria2 ) * (…), return_array )Com funciona aquesta fórmula : el resultat de cada prova de criteris és una matriu dels valors VERTADER i FALS. La multiplicació de les matrius converteix TRUE i FALSE en 1 i 0, respectivament, i produeix la matriu de cerca final. Com sabeu, multiplicar per 0 sempre dóna zero, de manera que a la matriu de cerca només els elements que compleixen tots els criteris es representen amb 1. I com que el nostre valor de cerca és "1", Excel pren el primer "1" a lookup_array (primera coincidència) i retorna el valor de return_array a la mateixa posició.
Per veure la fórmula en acció, traguem una quantitat de D2:D10 ( return_array ) amb les condicions següents:
- Criteri1 (data) = G1
- Criteri2 (vendedor) = G2
- Criteri3 (element) = G3
Amb dates a A2:A10 ( interval_criteri1 ), noms de venedors a B2:B10 ( interval_criteri2 ) i articles a C2:C10 ( criteria_range3 ), la fórmula pren aquesta forma:
=XLOOKUP(1, (B2:B10=G1) * (A2:A10=G2) * (C2:C10=G3), D2:D10)
Tot i que la funció BUSCAR XL d'Excel processa matrius, funciona com una fórmula normal i es completa amb un Enter habitualtecla.
La fórmula XLOOKUP amb diversos criteris no es limita a condicions "iguals a". També podeu utilitzar altres operadors lògics. Per exemple, per filtrar les comandes fetes a la data de G1 o anterior, poseu "<=G1" al primer criteri:
=XLOOKUP(1, (A2:A10<=G1) * (B2:B10=G2) * (C2:C10=G3), D2:D10)
Doble XLOOKUP
Per trobar un valor a la intersecció d'una fila i una columna determinades, realitzeu l'anomenada cerca doble o cerca de matriu . Sí, Excel XLOOKUP també ho pot fer! Simplement aniu una funció dins d'una altra:
XLOOKUP( lookup_value1 , lookup_array1 , XLOOKUP( lookup_value2 , lookup_array2 , data_values ))Com funciona aquesta fórmula : la fórmula es basa en la capacitat de XLOOKUP per retornar una fila o columna sencera. La funció interna cerca el seu valor de cerca i retorna una columna o una fila de dades relacionades. Aquesta matriu passa a la funció externa com a return_array .
Per a aquest exemple, trobarem les vendes realitzades per un venedor concret durant un trimestre determinat. Per a això, introduïm els valors de cerca a H1 (nom del venedor) i H2 (trimestre) i fem una Xlookup bidireccional amb la fórmula següent:
=XLOOKUP(H1, A2:A6, XLOOKUP(H2, B1:E1, B2:E6))
O al revés :
=XLOOKUP(H2, B1:E1, XLOOKUP(H1, A2:A6, B2:E6))
On A2:A6 són els noms dels venedors, B1:E1 són quarts (capçaleres de columnes) i B2:E6 són valors de dades.
També es pot fer una cerca bidireccional amb una fórmula de concordança INDEX i en apoques altres maneres. Per obtenir més informació, vegeu Cerca bidireccional a Excel.
Si error XLOOKUP
Quan no es troba el valor de cerca, Excel XLOOKUP retorna un error #N/A. Bastant familiar i comprensible per als usuaris experts, pot ser bastant confús per als novells. Per substituir la notació d'error estàndard per un missatge fàcil d'utilitzar, escriviu el vostre propi text al quart argument anomenat if_not_found .
Torna al primer exemple tractat en aquest tutorial. Si algú introdueix un nom d'oceà no vàlid a E1, la fórmula següent li dirà explícitament que "No s'ha trobat cap coincidència":
=XLOOKUP(E1, A2:A6, B2:B6, "No match is found")
Notes:
- L'argument if_not_found només captura els errors #N/A, no tots els errors.
- Els errors #N/A també es poden gestionar amb IFNA i VLOOKUP, però la sintaxi és una mica més complexa i una fórmula és més llarga.
Cerca XL que distingeix entre majúscules i minúscules
Per defecte, la funció BUSCAR XL tracta les minúscules i les majúscules com els mateixos caràcters. Per fer que distingeix entre majúscules i minúscules, utilitzeu la funció EXACTA per a l'argument lookup_array :
XLOOKUP(TRUE, EXACT( lookup_value , lookup_array ), return_array )Com funciona aquesta fórmula : la funció EXACTA compara el valor de cerca amb cada valor de la matriu de cerca i retorna TRUE si són exactament iguals, incloent-hi les majúscules i minúscules, FALSE en cas contrari. Aquesta matriu de valors lògics va a lookup_array argument de XLOOKUP. Com a resultat, XLOOKUP cerca el valor TRUE a la matriu anterior i retorna una coincidència de la matriu de retorn.
Per exemple, per obtenir el preu de B2:B7 ( return_array ) per l'element a E1 ( valor_cerca) , la fórmula a E2 és:
=XLOOKUP(TRUE, EXACT(E1, A2:A7), B2:B7, "Not found")
Nota. Si hi ha dos o més valors exactament iguals a la matriu de cerca (incloses les majúscules i minúscules), es retorna la primera coincidència trobada.
Excel XLOOKUP no funciona
Si la fórmula no funciona correctament o provoca un error, és probable que sigui pels motius següents:
XLOOKUP no està disponible al meu Excel
La funció XLOOKUP no és compatible enrere. Només està disponible a Excel per a Microsoft 365 i Excel 2021, i no apareixerà en versions anteriors.
XLOOKUP retorna un resultat incorrecte
Si la fórmula Xlookup òbviament correcta retorna un valor incorrecte, és probable que que l'interval de cerca o de retorn "va canviar" quan la fórmula es va copiar cap avall o cap avall. Per evitar que això passi, assegureu-vos de bloquejar sempre els dos intervals amb referències de cel·les absolutes (com ara $A$2:$A$10).
XLOOKUP retorna un error #N/A
Un #N /Un error només significa que no s'ha trobat el valor de cerca. Per solucionar-ho, proveu de cercar una concordança aproximada o informa els teus usuaris que no s'ha trobat cap coincidència.
XLOOKUP retorna l'error #VALUE
UN #VALOR! L'error es produeix si les matrius de cerca i de retorn són incompatiblesdimensions. Per exemple, no és possible cercar en una matriu horitzontal i retornar valors des d'una matriu vertical.
XLOOKUP retorna #REF error
A #REF! es genera un error en buscar entre dos llibres de treball diferents, un dels quals està tancat. Per corregir l'error, només cal que obriu els dos fitxers.
Com acabeu de veure, XLOOKUP té moltes funcions increïbles que la converteixen en LA funció per a gairebé qualsevol cerca a Excel. Us agraeixo la lectura i espero veure-us al nostre bloc la setmana vinent!
Quader de pràctiques per descarregar
Excels de fórmules XLOOKUP d'Excel (fitxer .xlsx)
verticalment i horitzontalment i realitzeu una coincidència exacta (per defecte), una concordança aproximada (més propera) o una concordança amb comodí (parcial).La sintaxi de la funció BUSCAR XL és la següent:
CERC_XL(valor_cerca, matriu_cerca, return_array, [if_not_found], [match_mode], [search_mode])Els 3 primers arguments són obligatoris i els tres últims són opcionals.
- Lookup_value : el valor per a cerca.
- Matriu_de_cerca : l'interval o la matriu on s'ha de cercar.
- Matriu_retorn : l'interval o la matriu des del qual es volen retornar els valors.
- If_not_found [opcional]: el valor a retornar si no es troba cap coincidència. Si s'omet, es retorna un error #N/A.
- Match_mode [opcional] - el tipus de concordança a realitzar:
- 0 o s'omet (per defecte) - coincidència exacta . Si no es troba, es retorna un error #N/A.
- -1: coincidència exacta o més petita. Si no es troba una coincidència exacta, es retorna el següent valor més petit.
- 1 - concordança exacta o més gran. Si no es troba una coincidència exacta, es retorna el següent valor més gran.
- 2 - Coincidència de caràcters comodí.
- Mode_cerca [opcional] - la direcció de la cerca:
- 1 o s'omet (per defecte) - per cercar del primer a l'últim.
- -1 - per cercar en ordre invers, de l'últim al primer.
- 2 - cerca binària en dades ordenades ascendent.
- -2 - cerca binària en dades ordenades descendent.
Segons Microsoft, binarycerca s'inclou per a usuaris avançats. És un algorisme especial que troba la posició d'un valor de cerca dins d'una matriu ordenada comparant-la amb l'element central de la matriu. Una cerca binària és molt més ràpida que una cerca normal, però només funciona correctament amb dades ordenades.
Fórmula XLOOKUP bàsica
Per obtenir més comprensió, creem una fórmula Xlookup en la seva forma més senzilla per fer una cerca exacta. Per a això, només necessitarem els 3 primers arguments.
Suposem que teniu una taula resum amb informació sobre els cinc oceans de la Terra. Voleu obtenir l'àrea d'una entrada d'oceà específica a F1 ( lookup_value ). Amb els noms dels oceans a A2:A6 ( lookup_array ) i les àrees a C2:C6 ( return_array ), la fórmula és la següent:
=XLOOKUP(F1, A2:A6, C2:C6)
Traduït a l'anglès senzill, diu: cerqueu el valor F1 a A2:A6 i retorneu un valor de C2:C6 a la mateixa fila. Sense números d'índex de columnes, sense classificació, sense altres peculiaritats ridícules de Vlookup! Només funciona :)
XLOOKUP vs. VLOOKUP a Excel
En comparació amb VLOOKUP tradicional, XLOOKUP té molts avantatges. De quina manera és millor que BUSCAR VOLTA? Aquí teniu una llista de les 10 millors funcions que fan volar qualsevol altra funció de cerca a Excel:
- Cerca vertical i horitzontal . La funció XLOOKUP va rebre el seu nom a causa de la seva capacitat de buscar tant verticalment comhoritzontalment.
- Mira en qualsevol direcció: dreta, esquerra, baix o amunt . Tot i que BUSCARV només pot cercar a la columna de l'esquerra i BUSCAR HL a la fila superior, BUSCAR XL no té aquestes limitacions. La coneguda cerca a l'esquerra a Excel ja no és un dolor!
- Coincidència exacta per defecte . En la majoria de les situacions, buscareu una coincidència exacta i XLOOKUP la retorna per defecte (a diferència de la funció VLOOKUP que per defecte és una coincidència aproximada). Per descomptat, també podeu fer que XLOOKUP faci una coincidència aproximada si cal.
- Concordança parcial amb comodins . Quan només coneixeu una part del valor de cerca, no tot, una coincidència amb comodins us resulta útil.
- Cerqueu en ordre invers . Abans, per obtenir l'última ocurrència, heu hagut d'invertir l'ordre de les dades d'origen. Ara, simplement establiu l'argument search_mode a -1 per forçar la vostra fórmula Xlookup a cercar des del darrere i retornar l'última coincidència.
- Retorna diversos valors . En manipular amb l'argument return_array , podeu extreure una fila o una columna sencera de dades relacionades amb el vostre valor de cerca.
- Cerqueu amb diversos criteris . L'Excel XLOOKUP gestiona les matrius de manera nativa, cosa que permet realitzar cerques amb diversos criteris.
- Si la funcionalitat d'error . Tradicionalment, fem servir la funció IFNA per atrapar errors #N/A. XLOOKUP incorpora aquesta funcionalitat al fitxerArgument if_not_found que permet generar el vostre propi text si no es troba cap coincidència vàlida.
- Insercions/supressions de columnes . Un dels problemes més irritants amb VLOOKUP és que afegir o eliminar columnes trenca una fórmula perquè la columna de retorn s'identifica pel seu número d'índex. Amb XLOOKUP, proporcioneu l'interval de retorn, no el nombre, és a dir, podeu inserir i eliminar tantes columnes com necessiteu sense trencar res.
- Millor rendiment . VLOOKUP podria alentir els vostres fulls de treball perquè inclou tota la taula en els càlculs, el que resulta en processar moltes més cel·les de les que realment es necessiten. XLOOKUP només gestiona les matrius de cerca i retorn de les quals depèn realment.
Com utilitzar XLOOKUP a Excel - exemples de fórmules
Els exemples següents mostren les funcions de XLOOKUP més útils en acció. A més, descobrireu un parell d'usos no trivials que portaran les vostres habilitats de cerca d'Excel a un nou nivell.
Buscar verticalment i horitzontalment
Microsoft Excel solia tenir dues funcions per a una cerca diferent. tipus, cadascun amb la seva pròpia sintaxi i regles d'ús: BUSCARV per mirar verticalment en una columna i BUSCARH per mirar horitzontalment en una fila.
La funció BUSCAR XL pot fer les dues coses amb la mateixa sintaxi. La diferència està en el que proporcioneu per a les matrius de cerca i retorn.
Per a la cerca v, proporcioneu columnes:
=XLOOKUP(E1, A2:A6, B2:B6)
Perh-lookup, introduïu files en lloc de columnes:
=XLOOKUP(I1, B1:F1, B2:F2)
La cerca a l'esquerra es realitza de forma nativa
En versions anteriors d'Excel, INDEX MATCH La fórmula era l'única manera fiable de mirar cap a l'esquerra o més amunt. Ara, ja no cal combinar dues funcions on n'hi hauria prou amb una. Només cal que especifiqueu la matriu de cerca objectiu i XLOOKUP la gestionarà sense cap problema independentment de la seva ubicació.
Com a exemple, afegim la columna Rank a l'esquerra de la nostra taula d'exemple. L'objectiu és obtenir el rang de l'entrada oceànica a la F1. VLOOKUP ensopegaria aquí perquè només pot retornar un valor d'una columna a la dreta de la columna de cerca. Una fórmula Xlookup funciona amb facilitat:
=XLOOKUP(F1, B2:B6, A2:A6)
De manera similar, podeu mirar a dalt quan cerqueu horitzontalment per files.
CERCA XL amb coincidència exacta i aproximada
El comportament de la coincidència està controlat pel cinquè argument anomenat match_mode . De manera predeterminada, es realitza una coincidència exacta.
Presteu atenció que, fins i tot quan trieu una coincidència aproximada ( match_mode establert a 1 o -1), la funció seguirà cercant una coincidència exacta. partit primer. La diferència està en el que retorna si no es troba un valor de cerca exacte.
Argument Match_mode:
- 0 o s'ha omès - coincidència exacta; si no es troba - #N/A error.
- -1 - coincidència exacta; si no es troba - el següent element més petit.
- 1 - coincidència exacta; si no es troba- següent element més gran.
Coincidència exacta XLOOKUP
Aquesta és l'opció que probablement utilitzeu el 99% del temps que feu una cerca a Excel. Com que una coincidència exacta és el comportament predeterminat de XLOOKUP, podeu ometre match_mode i proporcionar només els 3 primers arguments necessaris.
En algunes situacions, però, una coincidència exacta no funcionarà. Un escenari típic és quan la vostra taula de cerca no conté tots els valors, sinó "fites" o "límits", com ara descomptes basats en quantitats, comissions basades en vendes, etc.
La nostra taula de cerca de mostra mostra la correlació. entre les notes de l'examen i les notes. Com podeu veure a la captura de pantalla següent, una coincidència exacta només funciona quan la puntuació d'un estudiant concret coincideix exactament amb el valor de la taula de cerca (com Christian a la fila 3). En tots els altres casos, es retorna un error #N/A.
=XLOOKUP(F2, $B$2:$B$6, $C$2:$C$6)
Per obtenir les qualificacions en lloc dels errors #N/A, necessitem per buscar una coincidència aproximada tal com es mostra a l'exemple següent.
Coincidència aproximada XLOOKUP
Per fer una cerca aproximada, establiu l'argument match_mode a -1 o a 1 , depenent de com estiguin organitzades les teves dades.
En el nostre cas, la taula de cerca enumera els límits inferiors de les qualificacions. Per tant, establim match_mode a -1 per cercar el següent valor més petit quan no es troba una coincidència exacta:
=XLOOKUP(F11, $B$11:$B$15, $C$11:$C$15, ,-1)
Per exemple, Brian té la puntuació de 98 (F2). La fórmula cerca aquest valor de cerca a B2:B6però no el trobo. Aleshores, cerca el següent element més petit i troba 90, que correspon al grau A:
Si la nostra taula de cerca contingués els límits superiors de les qualificacions, establiríem match_mode a 1 per cercar el següent element més gran si falla una coincidència exacta:
=XLOOKUP(F2, $B$2:$B$6, $C$2:$C$6, ,1)
La fórmula cerca 98 i no el troba de nou. Aquesta vegada, intenta trobar el següent valor més gran i obté 100, corresponent a la nota A:
Consell. Quan copieu una fórmula de Xlookup a diverses cel·les, bloquegeu els intervals de cerca o de retorn amb referències de cel·les absolutes (com ara $B$2:$B$6) per evitar que canviïn.
XLOOKUP amb coincidència parcial (comodins)
Per dur a terme una cerca de coincidència parcial, establiu l'argument match_mode en 2, que indica a la funció XLOOKUP que processi els caràcters comodí:
- Un asterisc (*): representa qualsevol seqüència de caràcters.
- Un signe d'interrogació (?) - representa qualsevol caràcter.
Per veure com funciona , considereu l'exemple següent. A la columna A, teniu uns quants models de telèfon intel·ligent i, a la columna B, la seva capacitat de bateria. Tens curiositat per la bateria d'un determinat telèfon intel·ligent. El problema és que no esteu segur de poder escriure el nom del model exactament tal com apareix a la columna A. Per superar-ho, introduïu la part que hi ha definitivament i substituïu els caràcters restants per comodins.
Per exemple, aconseguirinformació sobre la bateria de l'iPhone X, utilitzeu aquesta fórmula:
=XLOOKUP("*iphone X*", A2:A8, B2:B8, ,2)
O introduïu la part coneguda del valor de cerca en alguna cel·la i concateneu la referència de la cel·la amb els caràcters comodís:
=XLOOKUP("*"&E1&"*", A2:A8, B2:B8, ,2)
XLOOKUP en ordre invers per obtenir l'última ocurrència
En cas que la vostra taula contingui diverses ocurrències del valor de cerca, és possible que de vegades necessiteu per tornar el últim partit . Per fer-ho, configureu la vostra fórmula Xlookup per cercar en ordre invers.
La direcció de la cerca es controla amb el sisè argument anomenat search_mode :
- 1 o s'omet (per defecte): cerca del primer al darrer valor, és a dir, de dalt a baix amb cerca vertical o d'esquerra a dreta amb cerca horitzontal.
- -1: cerca en ordre invers del darrer al primer valor .
Com a exemple, tornem l'última venda feta per un venedor concret. Per a això, ajuntem els tres primers arguments necessaris (G1 per a lookup_value , B2:B9 per a lookup_array i D2:D9 per a return_array ) i posem - 1 al 5è argument:
=XLOOKUP(G1, B2:B9, D2:D9, , ,-1)
Fàcil i senzill, no?
XLOOKUP per tornar diverses columnes o files
Una característica més sorprenent de XLOOKUP és la seva capacitat per retornar més d'un valor relacionat amb la mateixa coincidència. Tot es fa amb la sintaxi estàndard i sense cap manipulació addicional!
A la taula següent, suposant que voleu