È possibile evitare completamente la funzione di riempimento automatico con le formule di array . Basta inserire la formula come normale ma aggiungere :column
alla fine di ogni riferimento di cella e quindi premere Ctrl+ Shift+Enter . La formula verrà quindi applicata immediatamente a tutte le celle della colonna senza trascinare nulla
Modificare:
Le versioni Excel più recenti useranno automaticamente le formule di array per riempire quando c'è una nuova riga di dati
A partire dall'aggiornamento di settembre 2018 per Office 365, qualsiasi formula che può restituire più risultati li riverserà automaticamente verso il basso o nelle celle vicine. Questo cambiamento nel comportamento è anche accompagnato da diverse nuove funzioni di array dinamico. Le formule di array dinamici, sia che utilizzino le funzioni esistenti o le funzioni di array dinamico, devono solo essere immesse in una singola cella, quindi confermate premendo Invio. In precedenza, le formule di array legacy richiedono prima di selezionare l'intero intervallo di output, quindi confermare la formula con Ctrl+ Shift+ Enter. Sono comunemente chiamati formule CSE.
Linee guida ed esempi di formule di array
Se utilizzi una versione precedente di Excel o vuoi saperne di più sulle formule di array, continua a leggere
Ad esempio, inserire =B3:B + 2*C3:C
D3 e Ctrl+ Shift+ Enterequivale a digitare =B3 + 2*C3
e trascinare fino in fondo in una tabella a partire dalla riga 3
È veloce da digitare, ma ha uno svantaggio che le celle non utilizzate alla fine (al di fuori della tabella corrente) vengono comunque calcolate e mostrano 0. C'è un modo semplice per nascondere gli 0 . Tuttavia, il modo migliore è limitare il calcolo all'ultima colonna della tabella. Sapendo che in una formula di matrice puoi usare X3:X101
per applicare solo alle celle da X3 a X101 possiamo usare la INDIRECT
funzione per ottenere lo stesso effetto
- Immettere
=LOOKUP(2, 1/(A:A <> ""), A:A)
in una cella all'esterno della tabella per trovare l' ultima cella non vuota nella tabella e denominarla LastRow
. In alternativa, utilizzare =COUNTA(A3:A) + 2
quando la prima riga della tabella è 3
- Quindi invece di
B3:B
usare=INDIRECT("B3:B" & LastRow)
Per esempio, se si desidera celle nella colonna D per contenere i prodotti di cellule B e C, e la colonna E contiene somme di B e C, invece di usare D3 = B3*C3
ed E3 = B3 + C3
e trascinare verso il basso è sufficiente mettere il sotto formule in D3 e E3, rispettivamente, e premere Ctrl+ Shift+Enter
=INDIRECT("B3:B" & LastRow) * INDIRECT("C3:C" & LastRow)
=INDIRECT("B3:B" & LastRow) + INDIRECT("C3:C" & LastRow)
D'ora in poi ogni volta che aggiungi dati a una nuova riga, la tabella verrà automaticamente aggiornata
La formula dell'array è molto veloce poiché il modello di accesso ai dati è già noto. Ora invece di eseguire separatamente 100001 calcoli diversi, possono essere vettorializzati e eseguiti in parallelo , utilizzando più core e unità SIMD nella CPU. Ha anche i seguenti vantaggi:
- Coerenza: se si fa clic su una delle celle da E2 verso il basso, viene visualizzata la stessa formula. Tale coerenza può aiutare a garantire una maggiore precisione.
- Sicurezza: non è possibile sovrascrivere un componente di una formula di array a più celle. Ad esempio, fare clic sulla cella E3 e premere Elimina. Devi selezionare l'intero intervallo di celle (da E2 a E11) e modificare la formula per l'intero array o lasciare l'array così com'è. Come misura di sicurezza aggiuntiva, devi premere Ctrl+ Shift+ Enterper confermare la modifica alla formula.
- Dimensioni file più piccole: spesso è possibile utilizzare una formula a matrice singola anziché diverse formule intermedie. Ad esempio, la cartella di lavoro utilizza una formula di matrice per calcolare i risultati nella colonna E. Se avessi usato formule standard (ad esempio
=C2*D2
, C3*D3
, C4*D4
...), si sarebbe usato 11 diverse formule per calcolare gli stessi risultati.
Linee guida ed esempi di formule di array
Per maggiori informazioni leggi