Táboa de contidos
A sintaxe de MATCH non fornece en absoluto o argumento do modo de busca.
XMATCH xestiona matrices de forma nativa
A diferenza da súa predecesora, a función XMATCH foi deseñada para Excel dinámico e xestiona matrices de forma nativa, sen que teñas que premer Ctrl + Maiús + Intro . Isto fai que as fórmulas sexan moito máis fáciles de construír e editar, especialmente cando se usan algunhas funcións diferentes xuntos. Simplemente compare as seguintes solucións:
- Fórmula que distingue entre maiúsculas e minúsculas: XMATCH
O titorial presenta a nova función XMATCH de Excel e mostra como é mellor que MATCH para resolver algunhas tarefas comúns.
En Excel 365, engadiuse a función XMATCH para substituír a Función MATCH. Pero antes de comezar a actualizar as súas fórmulas existentes, sería conveniente comprender todas as vantaxes da nova función e como se diferencia da antiga.
En resumo, a función XMATCH é a mesma que MATCH pero máis flexible e flexible. robusto. Pode buscar tanto en matrices verticais como horizontais, buscar do primeiro ao último ou do último ao primeiro, atopar coincidencias exactas, aproximadas e parciais e utilizar un algoritmo de busca binario máis rápido.
Función XMATCH de Excel
A función XMATCH en Excel devolve a posición relativa dun valor nunha matriz ou nun intervalo de celas.
Ten a seguinte sintaxe:
XMATCH(valor_busca , lookup_array, [match_mode], [search_mode])Onde:
Lookup_value (obrigatorio): o valor a buscar.
Lookup_array (obrigatorio): a matriz ou intervalo de celas onde buscar.
Match_mode (opcional) - especifica o tipo de coincidencia a usar:
- 0 ou omitido (predeterminado) - coincidencia exacta
- -1 - coincidencia exacta ou o seguinte valor máis pequeno
- 1 - coincidencia exacta ou o seguinte valor máis grande
- 2 - coincidencia comodín ( *, ?)
Search_mode (opcional): especifica a dirección de busca e o algoritmo:
- 1 ou omítese (predeterminado) -coincidente ou o seguinte máis grande. Non require ningunha ordenación.
Cando o argumento match_mode / match_type está configurado en -1:
- COORDINACIÓN busca para a coincidencia exacta ou o seguinte máis grande. Require ordenar a matriz de busca en orde descendente.
- XMATCH busca a coincidencia exacta ou a seguinte máis pequena. Non require ningunha clasificación.
Busca comodíns
Para buscar coincidencias parciais con XMATCH, cómpre establecer o argumento match_mode en 2.
A función MATCH non ten unha opción especial de modo de coincidencia de comodíns. Na maioría dos casos, configurarao para a coincidencia exacta ( match_type establecido en 0), que tamén funciona para buscas con comodíns.
Modo de busca
Como o novo XLOOKUP función, XMATCH ten un argumento especial search_mode que che permite definir a dirección da busca :
- 1 ou omitida (predeterminada) - buscar primeiro en -last.
- -1 - busca inversa de último a primeiro.
E escolle un algoritmo de busca binario , que é moi rápido e eficiente en datos ordenados .
- 2 - busca binaria en datos ordenados ascendente.
- -2 - busca binaria en datos ordenados descendente.
Busca binaria , tamén chamada busca de medio intervalo ou busca logarítmica , é un algoritmo especial que atopa a posición dun valor de busca dentro dunha matriz comparándoa. ao elemento medio da matriz. Unha busca binaria é moito máis rápida que unha normalbusca do primeiro ao último.
- -1 - busca en orde inversa do último ao primeiro.
- 2 - busca binario ascendente. Require que lookup_array estea ordenado en orde ascendente.
- -2 - busca binaria descendente. Require que lookup_array estea ordenado en orde descendente.
A busca binaria é un algoritmo máis rápido que funciona de forma eficiente en matrices ordenadas. Para obter máis información, consulte Modo de busca.
Que versión de Excel ten XMATCH?
A función XMATCH só está dispoñible en Excel para Microsoft 365 e Excel 2021. En Excel 2019, Excel 2016 e anteriores versións, esta función non é compatible.
Fórmula XMATCH básica en Excel
Para ter unha idea xeral do que é capaz a función, imos construír unha fórmula XMATCH na súa forma máis sinxela, definindo só os dous primeiros argumentos requirían e deixando os opcionais nos seus valores predeterminados.
Supoño que tes unha lista de océanos clasificados polo seu tamaño (C2:C6) e queres atopar o rango dun océano en particular. Para facelo, simplemente use o nome do océano, diga Indian , como valor de busca e toda a lista de nomes como matriz de busca:
=XMATCH("Indian", C2:C6)
Para facer a fórmula máis flexible, introduza o océano de interese nalgunha cela, digamos F1:
=XMATCH(F1, C2:C6)
Como resultado, obtén unha fórmula XMATCH para buscar nunha matriz vertical . A saída é a posición relativa do valor de busca na matriz, que no noso casocorresponde ao rango do océano:
Unha fórmula similar funciona perfectamente para unha matriz horizontal tamén. Todo o que tes que facer é axustar a referencia lookup_array :
=XMATCH(B5, B1:F1)
Función Excel XMATCH: cousas para recordar
Para usar XMATCH de forma eficaz nas súas follas de traballo e evitar resultados inesperados, lembre estes 3 feitos sinxelos:
- Se hai dúas ou máis aparicións do valor de busca na matriz de busca, a posición de devólvese a primeira coincidencia se o argumento search_mode se establece en 1 ou se omite. Con search_mode definido en -1, a función busca en orde inversa e devolve a posición da última coincidencia como se demostra neste exemplo.
- Se o valor de busca non se atopa , prodúcese un erro #N/A.
- A función XMATCH é insensible entre maiúsculas e minúsculas por natureza e non pode distinguir as maiúsculas e minúsculas. Para distinguir caracteres en minúsculas e maiúsculas, use esta fórmula XMATCH que distingue entre maiúsculas e minúsculas.
Como usar XMATCH en Excel - exemplos de fórmulas
Os seguintes exemplos axudarano a comprender mellor o Función XMATCH e os seus usos prácticos.
Coincidencia exacta vs. coincidencia aproximada
O comportamento de coincidencia de XMATCH está controlado polo argumento opcional match_mode :
- 0 ou omitido (predeterminado): a fórmula só busca a coincidencia exacta. Se non se atopa unha coincidencia exacta, aDevólvese un erro #N/A.
- -1: a fórmula busca primeiro a coincidencia exacta e despois o seguinte elemento máis pequeno.
- 1: a fórmula busca primeiro a coincidencia exacta e despois para o seguinte elemento máis grande.
E agora, vexamos como afectan os diferentes modos de coincidencia ao resultado da fórmula. Supoña que quere descubrir onde se atopa unha determinada área, digamos 80.000.000 km2, entre todos os océanos.
Coincidencia exacta
Se usa 0 para match_mode ," Obter un erro #N/A, porque a fórmula non pode atopar un valor exactamente igual ao valor de busca:
=XMATCH(80000000, C2:C6, 0)
O seguinte elemento máis pequeno
Se usa -1 para match_mode , a fórmula devolverá 3, porque a coincidencia máis próxima menor que o valor de busca é 70.560.000 e é o terceiro elemento da matriz de busca:
=XMATCH(80000000, C2:C6, -1)
O seguinte elemento máis grande
Se usas 1 para match_mode , a fórmula mostrará 2, porque a coincidencia máis próxima maior que o valor de busca é 85.133.000, que é o segundo elemento da matriz de busca :
=XMATCH(80000000, C2:C6, -1)
A seguinte imaxe mostra todos os resultados:
Como combinar texto parcial en Excel con comodíns
A función XMATCH ten un modo de coincidencia especial para os comodíns: o argumento match_mode definido como 2.
No modo de coincidencia de comodíns, unha fórmula XMATCH acepta o seguinte comodín caracteres:
- Signo de interrogación (?) para que coincida con calquera carácter.
- Asterisco (*) para que coincida con calquerasecuencia de caracteres.
Ten en conta que os comodíns só funcionan con texto, non con números.
Por exemplo, para atopar a posición do primeiro elemento que comeza por "sur". , a fórmula é:
=XMATCH("south*", B2:B6, 2)
Ou pode escribir a súa expresión comodín nalgunha cela, digamos F1, e proporcionar a referencia da cela para o argumento lookup_value :
=XMATCH(F1, B2:B6, 2)
Na maioría das funcións de Excel, usarías a tilde (~) para tratar o asterisco (~*) ou o signo de interrogación (~?) como literal caracteres, non comodíns. Con XMATCH, a tilde non é necesaria. Se non define o modo de coincidencia de comodíns, XMATCH asumirá que ? e * son caracteres normais.
Por exemplo, a seguinte fórmula buscará no rango A2:A7 exactamente o carácter asterisco:
=XMATCH("*", A2:A7)
XMATCH busca inversa para atopar a última coincidencia
No caso de que existan varias aparicións do valor de busca na matriz de busca, ás veces pode ter que obter a posición da última aparición .
A dirección da busca é controlada como o cuarto argumento de XMATCH chamado search_mode . Para buscar en orde inversa, é dicir, de abaixo cara arriba nunha matriz vertical e de dereita a esquerda nunha matriz horizontal, search_mode debe establecerse en -1.
Neste exemplo, devolverá a posición do último rexistro para un valor de busca específico (consulta a captura de pantalla a continuación). Para iso, configura os argumentos comosegue:
- Lookup_value - o vendedor de destino en H1
- Lookup_array - nomes de vendedores en C2:C10
- Match_mode é 0 ou omítese (coincidencia exacta)
- Search_mode é -1 (de último ao primeiro)
Poñer os catro argumentos xuntos, obtemos esta fórmula:
=XMATCH(H1, C2:C10, 0, -1)
Que devolve o número da última venda realizada por Laura:
Como compara dúas columnas en Excel para a coincidencia
Para comparar dúas listas para as coincidencias, podes usar a función XMATCH xunto con IF e ISNA:
IF( ISNA( XMATCH( target_list, lista_busca, 0)), "Non hai coincidencia", "Coincidencia")Por exemplo, para comparar a Lista 2 en B2:B10 coa Lista 1 en A2:A10, a fórmula toma a seguinte forma:
=IF(ISNA(XMATCH(B2:B10, A2:A9)), "", "Match in List 1")
Neste exemplo, identificamos só coincidencias, polo que o argumento value_if_true da función IF é unha cadea baleira ("").
Introduza a fórmula anterior na cela máis alta (C2 no noso caso), prema Intro e "verterase" nas outras celas automaticamente (i t chámase intervalo de derrame):
Como funciona esta fórmula
No corazón da fórmula, a función XMATCH busca para un valor da Lista 2 dentro da Lista 1. Se se atopa un valor, devólvese a súa posición relativa, se non, un erro #N/A. No noso caso, o resultado de XMATCH é a seguinte matriz:
{#N/A;#N/A;2;#N/A;4;#N/A;#N/A;8;#N/A}
Esta matriz "aliméntase" á función ISNA para comprobar se hai erros #N/A.Para cada erro #N/A, ISNA devolve VERDADEIRO; para calquera outro valor - FALSO. Como resultado, produce a seguinte matriz de valores lóxicos, onde os TRUE representan non coincidencias e FALSE representan coincidencias:
{TRUE;TRUE;FALSE;TRUE;FALSE;TRUE;TRUE;FALSE;TRUE}
A matriz anterior vai á proba lóxica da función IF . Dependendo de como configurou os dous últimos argumentos, a fórmula mostrará o texto correspondente. No noso caso, é unha cadea baleira ("") para non coincidencias ( value_if_true ) e "Coincidir na lista 1" para coincidencias ( value_if_false ).
Nota. Esta fórmula só funciona en Excel 365 e Excel 2021 que admiten matrices dinámicas. Se está a usar Excel 2019, Excel 2016 ou unha versión anterior, consulte outras solucións: Como comparar dúas columnas en Excel.
INDEX XMATCH en Excel
XMATCH pódese usar en combinación coa función INDEX para recuperar un valor doutra columna asociada ao valor de busca, igual que a fórmula INDEX MATCH. O enfoque xenérico é o seguinte:
INDEX ( return _ array , XMATCH ( lookup_value , lookup_array )O a lóxica é moi sinxela e fácil de seguir:
A función XMATCH calcula a posición relativa do valor de busca na matriz de busca e pásaa ao argumento núm_fila de INDEX. En función da fila número, a función INDEX devolve un valor de calquera columna que especifique.
Por exemplo, para buscar a áreado océano en E1, pode usar esta fórmula:
=INDEX(B2:B6, XMATCH(E1, A2:A6))
INDEX XMATCH XMATCH para realizar unha busca bidimensional
Para busque en columnas e filas simultáneamente, use INDEX xunto con dúas funcións XMATCH. O primeiro XMATCH obterá o número de fila e o segundo recuperará o número de columna:
INDEX ( datos , XMATCH ( lookup_value , vertical _ lookup_array ), XMATCH ( lookup value , horizontal _ lookup_array )))A fórmula é similar á INDEX MATCH MATCH excepto que pode omitir o argumento match_mode xa que por defecto é a coincidencia exacta.
Por exemplo, para recuperar un número de vendas para un artigo determinado (G1) nun mes específico (G2), a fórmula é :
=INDEX(B2:D8, XMATCH(G1, A2:A8), XMATCH(G2, B1:D1))
Onde B2:D8 son celas de datos excluíndo as cabeceiras de fila e columna, A2:A8 é unha lista de elementos e B1:D1 son nomes de meses.
Fórmula XMATCH que distingue entre maiúsculas e minúsculas
Como xa se mencionou, a función XMATCH de Excel non distingue entre maiúsculas e minúsculas polo deseño. Para forzalo a distinguir entre maiúsculas e minúsculas, use XMATCH en combinación coa función EXACT:
MATCH(TRUE, EXACT( lookup_array , lookup_value ))Para buscar en orde inversa do último ao primeiro:
MATCH(TRUE, EXACT( lookup_array , lookup_value ), 0, -1)O seguinte exemplo mostra esta fórmula xenérica en acción. Supoñamos que tes unha lista de ID de produto que distingue entre maiúsculas e minúsculas en B2:B11. Estás buscandoatopar a posición relativa do elemento en E1. Unha fórmula que distingue entre maiúsculas e minúsculas en E2 é tan sinxela como esta:
=XMATCH(TRUE, EXACT(B2:B11, E1))
Como funciona esta fórmula:
A función EXACTA compara o valor de busca con cada elemento da matriz de busca. Se os valores comparados son exactamente iguais, incluídos os caracteres entre maiúsculas e minúsculas, a función devolve VERDADEIRO, FALSO en caso contrario. Esta matriz de valores lóxicos (onde os TRUE representan coincidencias exactas) vai ao argumento lookup_array de XMATCH. E como o valor de busca é VERDADEIRO, a función XMATCH devolve a posición da primeira coincidencia exacta atopada ou da última coincidencia exacta, dependendo de como configurase o argumento search_mode .
XMATCH vs. MATCH en Excel
XMATCH foi deseñado como un substituto máis potente e versátil de MATCH, polo que estas dúas funcións teñen moito en común. Non obstante, hai diferenzas esenciais.
Comportamento predeterminado diferente
A función MATCH predeterminada é a coincidencia exacta ou o seguinte elemento máis pequeno ( match_type definido como 1 ou omitido).
A función XMATCH por defecto é a coincidencia exacta ( match_mode establecido en 0 ou omitido).
Comportamento diferente para a coincidencia aproximada
Cando o match_mode O argumento / match_type está definido como 1:
- MATCH busca a coincidencia exacta ou a seguinte máis pequena. Require que a matriz de busca se clasifique en orde ascendente.
- XMATCH busca exactamente