![](https://cdn.wiki-base.com/2494370/excel_formula_nearest_location_with_xmatch__2.png.webp)
Formula generica
=INDEX(location,XMATCH(0,distance,1))
Sommario
Per individuare la posizione più vicina in base alla distanza è possibile utilizzare una formula basata sulla funzione XMATCH con la funzione INDICE. Nell'esempio mostrato, la formula nella cella E5 è:
=INDEX(location,XMATCH(0,distance,1))
dove la posizione (B5: B12) e la distanza (C5: C12) sono denominati intervalli.
Spiegazione
Al centro, questa formula è una formula INDICE e CONFRONTA di base. Tuttavia, invece di utilizzare la vecchia funzione MATCH, stiamo utilizzando la funzione XMATCH, che fornisce un'impostazione della modalità di corrispondenza più potente:
=INDEX(location,XMATCH(0,distance,1))
Lavorando dall'interno verso l'esterno, stiamo usando la funzione XMATCH per trovare la posizione della posizione più vicina:
XMATCH(0,distance,1) // find row nearest zero
Lo facciamo impostando il valore di ricerca su zero (0), l'array di ricerca sulla distanza (C5: C12) e la modalità di corrispondenza su 1.
Un valore 1 della modalità di corrispondenza indica a XMATCH di trovare una corrispondenza esatta o il valore successivo più grande. Poiché il valore di ricerca è fornito come zero (0), XMATCH troverà la prima distanza maggiore di zero. Un bel vantaggio di XMATCH - ciò che lo distingue da MATCH - è che non è l'array di ricerca da ordinare. Indipendentemente dall'ordine, MATCH restituirà la prima corrispondenza esatta o il valore successivo più grande.
Nell'esempio, XMATCH restituisce 5, poiché la distanza più piccola è 7 (posizione G), che appare quinta nell'elenco. La formula si risolve in:
=INDEX(location,5) // returns "G"
e INDICE restituisce il quinto elemento dalla posizione dell'intervallo denominato (B5: B12), che è "G".
Nota: in caso di parità, XMATCH restituirà la prima corrispondenza per i valori in parità.
Prendi distanza
La formula per restituire la distanza effettiva dalla posizione più vicina è quasi la stessa. Invece di dare a INDICE i nomi delle posizioni, diamo a INDICE le distanze. La formula in F5 è:
=INDEX(distance,XMATCH(0,distance,1)) // returns distance
XMATCH restituisce lo stesso risultato di sopra (5) e INDICE restituisce 7.