Táboa de contidos
O titorial presenta XLOOKUP - a nova función para a busca vertical e horizontal en Excel. A busca á esquerda, a última coincidencia, a busca de V con varios criterios e moitas máis cousas que antes requirían un título en ciencias de foguetes para conseguir agora son tan fáciles como ABC.
Sempre que necesites buscar en Excel. , que función usarías? É unha pedra angular BUSCAR V ou o seu irmán horizontal BUSCAR HL? Nun caso máis complexo, confiará na combinación canónica INDEX MATCH ou enviará o traballo a Power Query? A boa noticia é que xa non tes opción: todos estes métodos están deixando paso a un sucesor máis potente e versátil, a función XLOOKUP.
Como é mellor XLOOKUP? De moitos xeitos! Pode mirar vertical e horizontalmente, cara á esquerda e arriba, buscar con varios criterios e mesmo devolver unha columna ou fila enteira de datos, non só un valor. Microsoft levou máis de 3 décadas, pero finalmente conseguiron deseñar unha función robusta que supera moitos erros frustrantes e debilidades de BUSCAR V.
Cal é o problema? Ai, hai un. A función BUSCAR XL só está dispoñible en Excel para Microsoft 365, Excel 2021 e Excel para a web.
Función BUSCAR XL de Excel: sintaxe e usa
A función BUSCAR XL en Excel busca un valor especificado nun intervalo ou nunha matriz e devolve o valor relacionado doutra columna. Pode buscar os dousrecuperar todos os datos relativos ao vendedor de interese (F2). O que cómpre facer é proporcionar un intervalo, non unha columna ou fila única, para o argumento return_array :
=XLOOKUP(F2, A2:A7, B2:D7)
Introduce a fórmula na parte superior esquerda cela do intervalo de resultados e Excel verte automaticamente os resultados nas celas en branco adxacentes. No noso caso, a matriz de retorno (B2:D7) inclúe 3 columnas ( Data , Elemento e Amount ), e os tres valores son devoltos no intervalo G2:I2.
Se prefire organizar os resultados verticalmente nunha columna, aniñe XLOOKUP na función TRANSPOSE para virar a matriz devolta:
=TRANSPOSE(XLOOKUP(G1, A2:A7, B2:D7))
Dunha forma similar, pode devolver unha columna enteira de datos, por exemplo a columna Cantidade . Para iso, use a cela F1 que contén "Amount" como lookup_value , o intervalo A1:D1 que contén as cabeceiras das columnas como lookup_array e o intervalo A2:D7 que contén todos os datos como matriz_devolver .
=XLOOKUP(F1, A1:D1, A2:D7)
Nota. Dado que se enchen varios valores nas celas veciñas, asegúrate de ter suficientes celas en branco á dereita ou abaixo. Se Excel non atopa suficientes celas baleiras, un #SPILL! prodúcese un erro.
Consello. XLOOKUP non só pode devolver varias entradas, senón que tamén pode substituílas por outros valores que especifique. Pódese atopar un exemplo desta substitución masiva aquí: Como buscar e substituír varios valores con XLOOKUP.
XLOOKUP conmúltiples criterios
Outra gran vantaxe de XLOOKUP é que manexa matrices de forma nativa. Debido a esta capacidade, pode avaliar varios criterios directamente no argumento lookup_array :
XLOOKUP(1, ( criteria_range1 = criteria1 ) * ( intervalo_criterio2 = criterio2 ) * (…), matriz_retorno )Como funciona esta fórmula : o resultado de cada proba de criterios é unha matriz de valores VERDADERO e FALSO. A multiplicación das matrices converte VERDADEIRO e FALSO en 1 e 0, respectivamente, e produce a matriz de busca final. Como sabes, multiplicar por 0 sempre dá cero, polo que na matriz de busca só os elementos que cumpren todos os criterios están representados por 1. E como o noso valor de busca é "1", Excel toma o primeiro "1" en lookup_array (primeira coincidencia) e devolve o valor de return_array na mesma posición.
Para ver a fórmula en acción, extraemos unha cantidade de D2:D10 ( return_array ) coas seguintes condicións:
- Criterios1 (data) = G1
- Criterios2 (vendedor) = G2
- Criterios3 (elemento) = G3
Con datas en A2:A10 ( intervalo_criterio1 ), nomes dos vendedores en B2:B10 ( intervalo_criterio2 ) e elementos en C2:C10 ( criteria_range3 ), a fórmula toma esta forma:
=XLOOKUP(1, (B2:B10=G1) * (A2:A10=G2) * (C2:C10=G3), D2:D10)
Aínda que a función BUSCAR XL de Excel procesa matrices, funciona como unha fórmula normal e complétase cun Intro habitualtecla.
A fórmula XLOOKUP con varios criterios non se limita a condicións "igual a". Tamén podes usar outros operadores lóxicos. Por exemplo, para filtrar pedidos feitos na data de G1 ou anterior, pon "<=G1" no primeiro criterio:
=XLOOKUP(1, (A2:A10<=G1) * (B2:B10=G2) * (C2:C10=G3), D2:D10)
Double XLOOKUP
Para buscar un valor na intersección dunha determinada fila e columna, realice a chamada busca dobre ou busca de matriz . Si, Excel XLOOKUP tamén pode facelo! Simplemente anida unha función dentro doutra:
XLOOKUP( lookup_value1 , lookup_array1 , XLOOKUP( lookup_value2 , lookup_array2 , data_values ))Como funciona esta fórmula : a fórmula baséase na capacidade de XLOOKUP para devolver unha fila ou columna completa. A función interna busca o seu valor de busca e devolve unha columna ou fila de datos relacionados. Esa matriz vai á función externa como return_array .
Para este exemplo, imos atopar as vendas realizadas por un vendedor en particular nun trimestre determinado. Para iso, introducimos os valores de busca en H1 (nome do vendedor) e H2 (trimestre) e facemos unha Xlookup bidireccional coa seguinte fórmula:
=XLOOKUP(H1, A2:A6, XLOOKUP(H2, B1:E1, B2:E6))
Ou ao revés :
=XLOOKUP(H2, B1:E1, XLOOKUP(H1, A2:A6, B2:E6))
Onde A2:A6 son os nomes dos vendedores, B1:E1 son cuartos (cabeceiras das columnas) e B2:E6 son valores de datos.
Tamén se pode realizar unha busca bidireccional cunha fórmula de coincidencia INDEX e en apoucas outras formas. Para obter máis información, consulte Busca bidireccional en Excel.
Se erro BUSCAR XL
Cando non se atopa o valor de busca, BUSCAR XL de Excel devolve un erro #N/A. Moi familiar e comprensible para os usuarios expertos, pode resultar bastante confuso para os novatos. Para substituír a notación de erro estándar por unha mensaxe fácil de usar, escriba o seu propio texto no cuarto argumento chamado if_not_found .
Volva ao primeiro exemplo discutido neste tutorial. Se alguén introduce un nome de océano non válido en E1, a seguinte fórmula dirá explícitamente que "Non se atopou ningunha coincidencia":
=XLOOKUP(E1, A2:A6, B2:B6, "No match is found")
Notas:
- O argumento if_not_found captura só os erros #N/D, non todos os erros.
- Os erros #N/A tamén se poden xestionar con IFNA e VLOOKUP, pero a sintaxe é un pouco máis complexa e unha fórmula é máis longa.
BUSQUEDA XL que distingue entre maiúsculas e minúsculas
Por defecto, a función BUSCAR XL trata as letras minúsculas e maiúsculas como os mesmos caracteres. Para que distinga entre maiúsculas e minúsculas, use a función EXACT para o argumento lookup_array :
XLOOKUP(TRUE, EXACT( lookup_value , lookup_array ), return_array )Como funciona esta fórmula : a función EXACT compara o valor de busca con cada valor da matriz de busca e devolve VERDADEIRO se son exactamente iguais, incluíndo a letra maiúscula, FALSE en caso contrario. Esta matriz de valores lóxicos vai á matriz_busca argumento de XLOOKUP. Como resultado, XLOOKUP busca o valor TRUE na matriz anterior e devolve unha coincidencia da matriz de retorno.
Por exemplo, para obter o prezo de B2:B7 ( matriz_devolución ) para o elemento en E1 ( valor_busca) , a fórmula en E2 é:
=XLOOKUP(TRUE, EXACT(E1, A2:A7), B2:B7, "Not found")
Nota. Se hai dous ou máis valores exactamente iguais na matriz de busca (incluída a letra maiúscula), devólvese a primeira coincidencia atopada.
Excel BUSCADA XL non funciona
Se a túa fórmula non funciona ben ou produce un erro, o máis probable é que se deba aos seguintes motivos:
XLOOKUP non está dispoñible no meu Excel
A función XLOOKUP non é compatible con versións anteriores. Só está dispoñible en Excel para Microsoft 365 e Excel 2021, e non aparecerá en versións anteriores.
XLOOKUP devolve un resultado incorrecto
Se a túa fórmula Xlookup obviamente correcta devolve un valor incorrecto, é probable que que o intervalo de busca ou de retorno "cambiou" cando a fórmula foi copiada cara abaixo ou cara abaixo. Para evitar que isto suceda, asegúrese de bloquear sempre ambos intervalos con referencias de cela absolutas (como $A$2:$A$10).
XLOOKUP devolve un erro #N/A
Un #N /Un erro só significa que non se atopa o valor de busca. Para solucionar isto, tenta buscar unha coincidencia aproximada ou informa aos teus usuarios de que non se atopa ningunha coincidencia.
XLOOKUP devolve o erro #VALUE
UN #VALOR! O erro ocorre se as matrices de busca e de retorno son incompatiblesdimensións. Por exemplo, non é posible buscar nunha matriz horizontal e devolver valores desde unha matriz vertical.
XLOOKUP devolve un erro #REF
A #REF! prodúcese un erro ao buscar entre dous libros de traballo diferentes, un dos cales está pechado. Para corrixir o erro, simplemente abra os dous ficheiros.
Como acabas de ver, XLOOKUP ten moitas funcións incribles que o converten na función para case calquera busca en Excel. Grazas por ler e espero verte no noso blog a próxima semana!
Practica para descargar
Exemplos de fórmulas de Excel XLOOKUP (ficheiro .xlsx)
vertical e horizontalmente e realiza unha coincidencia exacta (predeterminada), unha coincidencia aproximada (máis próxima) ou unha coincidencia comodín (parcial).A sintaxe da función BUSCAR XL é a seguinte:
BUSCAR XL(valor_busca, matriz_busca, return_array, [if_not_found], [match_mode], [search_mode])Os 3 primeiros argumentos son obrigatorios e os tres últimos son opcionais.
- Lookup_value - o valor para buscar.
- Lookup_array : o intervalo ou matriz onde se busca.
- Return_array : o intervalo ou a matriz desde o que devolver os valores.
- If_not_found [opcional] - o valor a devolver se non se atopa ningunha coincidencia. Se se omite, devólvese un erro #N/A.
- Match_mode [opcional] - o tipo de coincidencia a realizar:
- 0 ou omitido (predeterminado) - coincidencia exacta . Se non se atopa, devólvese un erro #N/A.
- -1 - coincidencia exacta ou máis pequena. Se non se atopa unha coincidencia exacta, devólvese o seguinte valor menor.
- 1 - coincidencia exacta ou seguinte maior. Se non se atopa unha coincidencia exacta, devólvese o seguinte valor maior.
- 2 - coincidencia de caracteres comodín.
- Modo_busca [opcional] - a dirección da busca:
- 1 ou omitida (predeterminada) - para buscar do primeiro ao último.
- -1 - para buscar en orde inversa, do último ao primeiro.
- 2 - busca binaria en datos ordenados ascendente.
- -2 - busca binaria en datos ordenados descendente.
Segundo Microsoft, binarioa busca está incluída para usuarios avanzados. É un algoritmo especial que atopa a posición dun valor de busca dentro dunha matriz ordenada comparándoa co elemento central da matriz. Unha busca binaria é moito máis rápida que unha busca normal, pero só funciona correctamente en datos ordenados.
Fórmula XLOOKUP básica
Para obter máis comprensión, creemos unha fórmula Xlookup na súa forma máis sinxela para realizar unha busca exacta. Para iso, só necesitaremos os 3 primeiros argumentos.
Supoñamos que tes unha táboa resumo con información sobre os cinco océanos da Terra. Quere obter a área dunha entrada específica do océano en F1 ( lookup_value ). Cos nomes dos océanos en A2:A6 ( lookup_array ) e as áreas en C2:C6 ( return_array ), a fórmula é a seguinte:
=XLOOKUP(F1, A2:A6, C2:C6)
Traducido ao inglés sinxelo, di: busca o valor F1 en A2:A6 e devolve un valor de C2:C6 na mesma fila. Sen números de índice de columnas, sen clasificación, sen outras peculiaridades ridículas de Vlookup! Só funciona :)
XLOOKUP vs. VLOOKUP en Excel
En comparación co VLOOKUP tradicional, XLOOKUP ten moitas vantaxes. De que xeito é mellor que BUSCAR V? Aquí tes unha lista das 10 mellores funcións que fan explotar calquera outra función de busca en Excel:
- Busca vertical e horizontal . A función XLOOKUP recibiu o seu nome debido á súa capacidade de buscar tanto verticalmente comohorizontalmente.
- Mira en calquera dirección: dereita, esquerda, abaixo ou arriba . Aínda que BUSCARV só pode buscar na columna da esquerda e BUSCARH na fila superior, BUSCARX non ten tales limitacións. A notoria busca á esquerda en Excel xa non é unha dor!
- Coincidencia exacta por defecto . Na maioría das situacións, buscará unha coincidencia exacta e BUSCARXLO devólvaa de forma predeterminada (a diferenza da función BUSCARV que por defecto é a coincidencia aproximada). Por suposto, tamén podes facer que XLOOKUP realice unha coincidencia aproximada se é necesario.
- Coincidencia parcial con comodíns . Cando só coñeces algunha parte do valor de busca, non todo, é útil unha coincidencia de comodíns.
- Busca en orde inversa . Antes, para obter a última aparición, tivo que inverter a orde dos datos de orixe. Agora, simplemente estableces o argumento search_mode en -1 para forzar a túa fórmula Xlookup a buscar desde atrás e devolver a última coincidencia.
- Devolver varios valores . Ao manipular co argumento return_array , pode extraer unha fila ou columna enteira de datos relacionados co seu valor de busca.
- Buscar con varios criterios . Excel XLOOKUP manexa matrices de forma nativa, o que permite realizar buscas con varios criterios.
- Se a funcionalidade de erro . Tradicionalmente, usamos a función IFNA para atrapar erros #N/A. XLOOKUP incorpora esta funcionalidade no ficheiroArgumento if_not_found que permite emitir o teu propio texto se non se atopa ningunha coincidencia válida.
- Insercións/eliminacións de columnas . Un dos problemas máis irritantes con BUSCAR V é que engadir ou eliminar columnas rompe unha fórmula porque a columna de retorno se identifica polo seu número de índice. Con XLOOKUP, proporciona o intervalo de retorno, non o número, o que significa que pode inserir e eliminar tantas columnas como necesite sen romper nada.
- Mellor rendemento . VLOOKUP pode ralentizar as túas follas de traballo porque inclúe toda a táboa nos cálculos, o que resulta en procesar moitas máis celas das que realmente se necesitan. XLOOKUP xestiona só as matrices de busca e devolución das que realmente depende.
Como usar XLOOKUP en Excel - exemplos de fórmulas
Os seguintes exemplos mostran as funcións de XLOOKUP máis útiles en acción. Ademais, descubrirá un par de usos non triviais que levarán as súas habilidades de busca de Excel a un novo nivel.
Mira vertical e horizontalmente
Microsoft Excel adoitaba ter dúas funcións para buscar diferentes. tipos, cada un tendo a súa propia sintaxe e regras de uso: BUSCARV para mirar verticalmente nunha columna e BUSCARH para mirar horizontalmente nunha fila.
A función BUSCAR XL pode facer ambas coa mesma sintaxe. A diferenza está no que proporcionas para as matrices de busca e devolución.
Para a busca v, fornece as columnas:
=XLOOKUP(E1, A2:A6, B2:B6)
Parah-lookup, introduza filas en lugar de columnas:
=XLOOKUP(I1, B1:F1, B2:F2)
A busca á esquerda realizouse de forma nativa
En versións anteriores de Excel, INDEX MATCH fórmula era a única forma fiable de mirar cara á esquerda ou arriba. Agora xa non necesitas combinar dúas funcións onde unha sería suficiente. Só ten que especificar a matriz de busca de destino e XLOOKUP xestionaráo sen problema independentemente da súa localización.
A modo de exemplo, engademos a columna Rank á esquerda da nosa táboa de mostra. O obxectivo é obter o rango da entrada do océano na F1. VLOOKUP tropezaría aquí porque só pode devolver un valor dunha columna á dereita da columna de busca. Unha fórmula Xlookup funciona con facilidade:
=XLOOKUP(F1, B2:B6, A2:A6)
De forma similar, podes mirar arriba cando buscas horizontalmente en filas.
XLOOKUP con coincidencia exacta e aproximada
O comportamento da coincidencia está controlado polo 5º argumento chamado match_mode . De forma predeterminada, realízase unha coincidencia exacta.
Preste en conta que aínda que escolla unha coincidencia aproximada ( match_mode definida en 1 ou -1), a función seguirá buscando unha coincidencia exacta. partido primeiro. A diferenza está no que devolve se non se atopa un valor de busca exacto.
Argumento Match_mode:
- 0 ou omitido - coincidencia exacta; se non se atopa - #N/A erro.
- -1 - coincidencia exacta; se non se atopa - o seguinte elemento máis pequeno.
- 1 - coincidencia exacta; se non se atopa- seguinte elemento máis grande.
Coincidencia exacta XLOOKUP
Esta é a opción que probablemente uses o 99 % das veces que buscas en Excel. Dado que unha coincidencia exacta é o comportamento predeterminado de XLOOKUP, pode omitir match_mode e proporcionar só os 3 primeiros argumentos necesarios.
Nalgúns casos, porén, unha coincidencia exacta non funcionará. Un escenario típico é cando a túa táboa de busca non contén todos os valores, senón "marcas" ou "límites", como descontos por cantidades, comisións por vendas, etc.
A nosa táboa de busca de mostra mostra a correlación entre as notas dos exames e as notas. Como podes ver na captura de pantalla a continuación, unha coincidencia exacta só funciona cando a puntuación dun alumno en particular coincide exactamente co valor da táboa de busca (como Christian na fila 3). En todos os demais casos, devólvese un erro #N/D.
=XLOOKUP(F2, $B$2:$B$6, $C$2:$C$6)
Para obter as cualificacións en lugar de erros #N/D, necesitamos para buscar unha coincidencia aproximada como se mostra no seguinte exemplo.
Coincidencia aproximada XLOOKUP
Para realizar unha busca aproximada, configure o argumento match_mode en -1 ou 1 , dependendo de como estean organizados os teus datos.
No noso caso, a táboa de busca enumera os límites inferiores das cualificacións. Así, establecemos match_mode en -1 para buscar o seguinte valor menor cando non se atopa unha coincidencia exacta:
=XLOOKUP(F11, $B$11:$B$15, $C$11:$C$15, ,-1)
Por exemplo, Brian ten a puntuación de 98 (F2). A fórmula busca este valor de busca en B2:B6pero non pode atopalo. Despois, busca o seguinte elemento máis pequeno e atopa 90, que corresponde á nota A:
Se a nosa táboa de busca contiña os límites superiores das cualificacións, estableceriamos match_mode a 1 para buscar o seguinte elemento máis grande se falla unha coincidencia exacta:
=XLOOKUP(F2, $B$2:$B$6, $C$2:$C$6, ,1)
A fórmula busca 98 e de novo non o atopa. Esta vez, tenta atopar o seguinte valor maior e obtén 100, correspondente á nota A:
Consello. Ao copiar unha fórmula Xlookup en varias celas, bloquee os intervalos de busca ou devolución con referencias de cela absolutas (como $B$2:$B$6) para evitar que cambien.
XLOOKUP con coincidencia parcial (comodín)
Para realizar unha busca de coincidencia parcial, estableza o argumento match_mode en 2, que indica á función XLOOKUP que procese os caracteres comodín:
- Un asterisco (*) - representa calquera secuencia de caracteres.
- Un signo de interrogación (?) - representa calquera carácter único.
Para ver como funciona , considere o seguinte exemplo. Na columna A, tes algúns modelos de teléfonos intelixentes e, na columna B, a súa capacidade de batería. Tes curiosidade pola batería dun determinado teléfono intelixente. O problema é que non está seguro de poder escribir o nome do modelo exactamente como aparece na columna A. Para superar isto, introduza a parte que definitivamente está alí e substitúa os caracteres restantes por comodíns.
Por exemplo, conseguirinformación sobre a batería do iPhone X, utiliza esta fórmula:
=XLOOKUP("*iphone X*", A2:A8, B2:B8, ,2)
Ou, introduce a parte coñecida do valor de busca nalgunha cela e concatena a referencia da cela cos caracteres comodín:
=XLOOKUP("*"&E1&"*", A2:A8, B2:B8, ,2)
XLOOKUP en orde inversa para obter a última aparición
No caso de que a túa táboa conteña varias aparicións do valor de busca, ás veces pode que necesites para devolver a última partida . Para facelo, configure a súa fórmula Xlookup para buscar en orde inversa.
A dirección da busca contrólase no sexto argumento chamado search_mode :
- 1 ou omitido (predeterminado): busca do primeiro ao último valor, é dicir, de arriba a abaixo con busca vertical ou de esquerda a dereita con busca horizontal.
- -1: busca en orde inversa do último ao primeiro valor .
A modo de exemplo, devolvamos a última venda realizada por un vendedor específico. Para iso, xuntamos os tres primeiros argumentos necesarios (G1 para lookup_value , B2:B9 para lookup_array e D2:D9 para return_array ) e poñemos - 1 no 5º argumento:
=XLOOKUP(G1, B2:B9, D2:D9, , ,-1)
Fácil e sinxelo, non é?
XLOOKUP para devolver varias columnas ou filas
Unha característica máis sorprendente de XLOOKUP é a súa capacidade para devolver máis dun valor relacionado coa mesma coincidencia. Todo está feito coa sintaxe estándar e sen ningunha manipulación adicional!
Na táboa de abaixo, supondo que quere