www.valterborsato.it

Le nuove funzione di matrice dinamica STACK.VERT e STACK.ORIZ

L'unione dinamica di due o più intervalli di dati è sempre stata un'attività complessa da gestire in Excel, specialmente quando gli intervalli hanno dimensioni variabili o richiedono aggiornamenti continui.
In passato, questo tipo di operazione richiedeva l'uso di formule complesse o macro.
Tuttavia, con gli aggiornamenti di Excel 365 del 2022, le nuove funzioni di matrice dinamica hanno notevolmente semplificato questi processi.
Ora è possibile unire facilmente due o più intervalli di dati, siano essi statici o dinamici, con l'ausilio di una semplice funzione.
Le funzioni STACK.VERT (VSTACK) e STACK.ORIZ (HSTACK) offrono una soluzione pratica per combinare intervalli di dati in modo flessibile.
La funzione STACK.VERT consente di unire gli intervalli di dati disponendoli in verticale, uno sotto l'altro, mentre STACK.ORIZ permette di affiancarli orizzontalmente, creando così un'unica tabella o matrice continua.
Queste funzioni sono particolarmente utili quando si lavora con dati che cambiano frequentemente o che devono essere aggregati senza dover ridisegnare manualmente le tabelle ogni volta che ci sono aggiornamenti.

Sintassi della Funzione STACK.VERT

La funzione STACK.VERT di Excel serve per combinare più intervalli o matrici, disponendoli in verticale, in un'unica colonna. Questa funzione è utile quando si desidera unire dati provenienti da diverse tabelle o elenchi, organizzandoli uno sotto l'altro in un'unica colonna.

=STACK.VERT(matrice1;[matrice2],...)
Nella quale
matrice1;[matrice2]..... rappresentano i riferimenti delle Matrici o Intervalli di celle da unire. Matrice1 ovviamente è obbligatoria, le successive sono argomenti facoltativi.

Sintassi della Funzione STACK.ORIZ

La funzione STACK.ORIZ di Excel è utilizzata per combinare più intervalli o matrici, disponendoli orizzontalmente in un'unica riga. Questa funzione è utile quando si desidera unire dati da tabelle o elenchi diversi, posizionandoli uno accanto all'altro.

=STACK.ORIZ(matrice1;[matrice2],...)
Nella quale
matrice1;[matrice2]..... rappresentano i riferimenti delle Matrici o Intervalli di celle da unire. Matrice1 ovviamente è obbligatoria, le successive sono argomenti facoltativi.

Nell'esempio descritto nella sottostante immagine, si vogliono unire due distinti elenchi di persone in una unica tabella.
Nella cella A11 è stata inserita la seguente Funzione =STACK.VERT(A3:E7;G3:K6)
Inserita la Funzione, a partire dalla cella A11, è stata creata automaticamente una tabella dinamica che unisce i valori provenienti dalle due serie di dati.
Osservazioni: nella seconda tabella di origine, il dato relativo al comune è assente, quindi nel risultato della funzione viene restituito il valore 0 al posto del dato mancante.

funzione di matrice dinamica STACK.VERT e STACK.ORIZ

Per utilizzare al meglio le Nuove funzioni di Excel VSTACK e HSTACK, è importante considerare alcuni aspetti:
Queste funzioni consentono di combinare intervalli di celle, intervalli denominati, matrici generati da altre formule.
La formula, come tutte le funzioni di matrice dinamica, deve essere inserita in una singola cella. Da questa cella, la matrice dinamica risultante si estenderà automaticamente per tutte le celle necessarie.
L'output delle funzioni è completamente dinamico: qualsiasi modifica nelle tabelle dati originali viene immediatamente riflessa nella matrice restituita. (Nel caso dell'esempio di cui sopra se venisse aggiunta una nuova riga alla prima tabella, l'inserimento dei dati nella matrice di destinazione sarà posizionato alla fine della serie appartenete alla prima tabella e non alla fine dell'elenco).
Per aggiungere nuovi dati alla matrice risultante senza dover modificare la formula, è importante che le base dati di origine siano delle tabelle di Excel e non dei semplici intervalli di dati.

Gestire le celle vuote

Se gli intervalli di origine contengono delle celle vuote, la matrice restituirà degli zeri al posto degli spazi vuoti.
Per risolvere questo problema, è possibile nidificare la tua funzione STACK.VERT e STACK.ORIZ all'interno del primo argomento della funzione SOSTITUISCI, in modo da sostituire gli zeri con stringhe vuote ("").
Ad esempio, puoi utilizzare la seguente Formula: =SOSTITUISCI(STACK.VERT(A3:E8;G14:K17);" ";"")

funzione di matrice dinamica STACK.VERT e STACK.ORIZ

Qualora nei due intervalli di dati "sorgente" delle informazioni, vi fossero dei valori duplicati, è possibili nidificare le due Funzioni STACK.VERT e STACK.ORIZ all'interno della Funzione UNICI.
Nell'esempio raffigurato nella sottostante figura è stata impostata la seguente Formula: =UNICI(STACK.VERT(A3:E7;G3:K6))

funzione di matrice dinamica STACK.VERT e STACK.ORIZ 

In questo esempio, viene suggerito di utilizzare la funzione STACK.ORIZ.
L'obiettivo è unire due tabelle che contengono i dati relativi ai vincitori di competizioni sciistiche, creando così una singola tabella aggregata. La funzione proposta per raggiungere questo scopo è la seguente:
 =STACK.ORIZ(C2:E4;H2:L4)
Affinchè i dati siano rappresentati in ordine decrescente dal 2024  al 2017 la funzione STACK.ORIZ è stata nidificata all'interno della Funzione DATI.ORDINA
Gli argomenti descritti nella Funzione DATI.ORDINA sono rispettivamente:
il primo argomento è la Funzione STACK.ORIZ
il secondo argomenti = 1 rappresenta l'indice di ordinamento, ovvero la matrice è ordinato in base alla prima riga
il terzo argomento = -1 indica l'ordinamento crescente
il quarto argomento = VERO indica che devono essere ordinate le colonne, non le righe

=DATI.ORDINA(STACK.ORIZ(C2:E4;H2:L4);1;-1;VERO)

funzione di matrice dinamica STACK.ORIZ 

Il risultato dell'operazione è l'unione delle due tabelle e la rappresentazione in ordine cronologico decrescenti di chi a vinto le competizione dall'anno 2024 al 2017.

[Valter Borsato: pubblicato 15/09/2024, revisione: 09/10/2024]

Indice Generale Argomenti: EXCEL