Formula Excel: ricerca multicriterio e trasposizione -

Sommario

Formula generica

(=INDEX(rng1,MATCH(1,($A1=rng2)*(B$1=rng3),0)))

Sommario

Per eseguire una ricerca multicriterio e trasporre i risultati in una tabella, è possibile utilizzare una formula di matrice basata su INDICE e CONFRONTA. Nell'esempio mostrato, la formula in G5 è:

(=INDEX(amount,MATCH(1,($F5=location)*(G$4=date),0)))

Nota che questa formula è una formula di matrice e deve essere inserita con CTRL + MAIUSC + INVIO.

Questa formula utilizza anche tre intervalli denominati: location = B5: B13, amount = D5: D13, date = C5: C13

Spiegazione

Il nucleo di questa formula è INDICE, che sta recuperando un valore dall'intervallo denominato "importo" (B5: B13):

=INDEX(amount,row_num)

dove row_num viene elaborato con la funzione MATCH e una logica booleana:

MATCH(1,($F5=location)*(G$4=date),0)

In questo frammento, la posizione in F5 viene confrontata con tutte le posizioni e la data in G4 viene confrontata con tutte le date. Il risultato in ogni caso è un array di valori TRUE e FALSE. Quando questi array vengono moltiplicati insieme, l'operazione matematica forza i valori TRUE e FALSE a uno e zero, in modo che l'array di ricerca che va in MATCH abbia il seguente aspetto:

(1;0;0;0;0;0;0;0;0)

MATCH è impostato per abbinare 1 come corrispondenza esatta e restituisce la posizione a INDICE come numero di riga. Il numero 1 funziona per il valore di ricerca perché l'array ora contiene solo 1 e 0, come mostrato sopra.

F5 e G4 vengono inseriti come riferimenti misti in modo che la formula possa essere copiata attraverso la tabella senza modifiche.

Trasporre con pasta speciale

Se hai solo bisogno di trasporre una tabella una volta, non dimenticare che puoi usare pasta speciale.

Articoli interessanti...