Formula generica
=INDEX(CHOOSE(number,array1,array2),MATCH(value,range,0))
Sommario
Per impostare una formula INDICE e CONFRONTA in cui la matrice fornita a INDICE è variabile, è possibile utilizzare la funzione SCEGLI. Nell'esempio mostrato, la formula in I5, copiata verso il basso, è:
=INDEX(CHOOSE(H5,Table1,Table2),MATCH(G5,Table1(Model),0),2)
Con Table1 e Table2 come indicato nello screenshot.
Spiegazione
Fondamentalmente, questa è una normale funzione INDICE e CONFRONTA:
=INDEX(array,MATCH(value,range,0))
Dove la funzione CONFRONTA viene utilizzata per trovare la riga corretta da restituire dall'array e la funzione INDICE restituisce il valore in quell'array.
Tuttavia, in questo caso vogliamo rendere variabile l'array, in modo che l'intervallo dato a INDICE possa essere modificato al volo. Lo facciamo con la funzione SCEGLI:
CHOOSE(H5,Table1,Table2)
La funzione SCEGLI restituisce un valore da un elenco utilizzando una data posizione o indice. Il valore può essere una costante, un riferimento di cella, una matrice o un intervallo. Nell'esempio, l'indice numerico è fornito nella colonna H. Quando il numero di indice è 1, utilizziamo Table1. Quando l'indice è 2, alimentiamo Table2 in INDEX:
CHOOSE(1,Table1,Table2) // returns Table1 CHOOSE(2,Table1,Table2) // returns Table2
Nota: gli intervalli forniti per SCEGLIERE non devono essere necessariamente tabelle o intervalli denominati.
In I5, il numero nella colonna H è 1, quindi SCEGLI restituisce Tabella1 e la formula si risolve in:
=INDEX(Table1,MATCH("A",Table1(Model),0),2)
La funzione CONFRONTA restituisce la posizione "A" in Tabella1, che è 1, e INDICE restituisce il valore alla riga 1, colonna 2 di Tabella1, che è $ 20,00
=INDEX(Table1,1,2) // returns $20.00