Formula di Excel: definire l'intervallo in base al valore della cella -

Formula generica

=SUM(firstcell:INDEX(data,rows,cols))

Sommario

Per definire un intervallo basato su un valore in un'altra cella, puoi utilizzare la funzione INDICE. Nell'esempio mostrato, la formula in J7 è:

=SUM(C5:INDEX(data,J5,J6))

dove "dati" è l'intervallo denominato B5: G9.

Spiegazione

Questa formula si basa su un comportamento specifico di INDICE - sebbene sembri che INDICE restituisca il valore in una posizione particolare, in realtà restituisce il riferimento alla posizione. Nella maggior parte delle formule, non noterai la differenza: Excel valuta semplicemente il riferimento e restituisce il valore. Questa formula utilizza questa funzione per costruire un intervallo dinamico basato sull'input del foglio di lavoro.

All'interno della funzione somma, il primo riferimento è semplicemente la prima cella dell'intervallo che copre tutte le celle possibili:

=SUM(C5:

Per ottenere l'ultima cella, usiamo INDICE. Qui, diamo a INDICE l'intervallo denominato "dati", che è l'intervallo di valori massimo possibile, e anche i valori da J5 (righe) e J6 (colonne). INDICE non restituisce un intervallo, restituisce solo una singola cella in quella posizione, E9 nell'esempio:

INDEX(data,J5,J6) // returns E9

La formula originale si riduce a:

=SUM(C5:E9)

che restituisce 300, la somma di tutti i valori in C5: E9.

La formula in J8 è quasi la stessa, ma utilizza MEDIA invece di SOMMA per calcolare una media. Quando un utente modifica i valori in J5 o J6, l'intervallo viene aggiornato e vengono restituiti nuovi risultati.

Alternativa con OFFSET

È possibile creare formule simili con la funzione OFFSET, mostrata di seguito:

=SUM(OFFSET(C5,0,0,J5,J6)) // sum =AVERAGE(OFFSET(C5,0,0,J5,J6)) // average

OFFSET è progettato per restituire un intervallo, quindi le formule sono forse più semplici da capire. Tuttavia, OFFSET è una funzione volatile e può causare problemi di prestazioni se utilizzato in fogli di lavoro più grandi e complessi.

Articoli interessanti...