![](https://cdn.wiki-base.com/4429227/excel_formula_approximate_match_with_multiple_criteria__2.png.webp)
Sommario
Per cercare e approssimare la corrispondenza in base a più di un criterio, è possibile utilizzare una formula di matrice basata su INDICE e CONFRONTA, con l'aiuto della funzione SE. Nell'esempio mostrato, la formula in G8 è:
(=INDEX(D5:D10,MATCH(G7,IF(B5:B10=G6,C5:C10),1)))
L'obiettivo di questa formula è restituire la "taglia" quando viene dato un animale e un peso.
Nota: questa è una formula di matrice e deve essere inserita con Control + Maiusc + Invio
Spiegazione
In sostanza, questa è solo una formula INDICE / CONFRONTA. Il problema in questo caso è che dobbiamo "escludere" le voci estranee nella tabella, quindi ci rimangono solo le voci che corrispondono all'animale che stiamo cercando.
Questo viene fatto con una semplice funzione IF qui:
IF(B5:B10=G6,C5:C10)
Questo frammento verifica i valori in B5: B10 per vedere se corrispondono al valore in G6 (l'animale). In caso di corrispondenza, vengono restituiti i valori corrispondenti in C5: C11. In assenza di corrispondenza, viene restituito FALSE. Quando G6 contiene "cat", l'array risultante ha questo aspetto:
(FALSO; FALSO; FALSO; 5; 10; 15)
Questo entra nella funzione MATCH come array. Il valore di ricerca per la corrispondenza proviene da G7, che contiene il peso (9 libbre nell'esempio).
Nota che la corrispondenza è configurata per una corrispondenza approssimativa impostando match_type su 1 e ciò richiede che i valori in C5: C11 debbano essere ordinati.
CONFRONTA restituisce la posizione del peso nella matrice e questa viene passata alla funzione INDICE come numero di riga. Il lookup_array per INDEX sono le dimensioni in D5: D10, quindi INDEX restituisce una dimensione corrispondente alla posizione generata da MATCH (il numero 4 nell'esempio mostrato).