Array dinamici, funzioni e formule di Excel

  • Condividi Questo
Michael Brown

Grazie al rivoluzionario aggiornamento del motore di calcolo di Excel 365, le formule degli array sono diventate molto semplici e comprensibili per tutti, non solo per i superutenti. L'esercitazione spiega il concetto dei nuovi array dinamici di Excel e mostra come possono rendere i fogli di lavoro più efficienti e molto più facili da impostare.

Le formule di array di Excel sono sempre state considerate una prerogativa dei guru e degli esperti di formule. Se qualcuno dice "Questo può essere fatto con una formula di array", la reazione immediata di molti utenti è "Oh, non c'è un altro modo?".

L'introduzione degli array dinamici è una novità attesa da tempo e molto gradita: grazie alla loro capacità di lavorare con valori multipli in modo semplice, senza trucchi e stranezze, le formule degli array dinamici sono qualcosa che ogni utente di Excel può capire e divertirsi a creare.

    Array dinamici di Excel

    Array dinamici sono array ridimensionabili che calcolano automaticamente e restituiscono valori in più celle in base a una formula inserita in una singola cella.

    In oltre 30 anni di storia, Microsoft Excel ha subito molti cambiamenti, ma una cosa è rimasta costante: una formula, una cella. Anche con le formule di array tradizionali, era necessario inserire una formula in ogni cella in cui si desiderava che apparisse un risultato. Con gli array dinamici, questa regola non è più vera. Ora, qualsiasi formula che restituisce un array di valori si riversa automaticamente nelle celle vicine.In altre parole, operare con gli array dinamici diventa facile come lavorare con una singola cella.

    Illustriamo il concetto con un esempio molto elementare: supponiamo di dover moltiplicare due gruppi di numeri, ad esempio per calcolare percentuali diverse.

    Nelle versioni pre-dinamiche di Excel, la formula sottostante funzionerebbe solo per la prima cella, a meno che non la si inserisca in più celle e si prema Ctrl + Maiusc + Invio per renderla esplicitamente una formula di matrice:

    =A3:A5*B2:D2

    Ora guardate cosa succede quando si usa la stessa formula in Excel 365. La si digita in una sola cella (B3 nel nostro caso), si preme il tasto Invio... e l'intera rage si riempie subito dei risultati:

    Il riempimento di più celle con una singola formula si chiama versamento e l'intervallo di celle popolato è chiamato intervallo di versamento.

    Una cosa importante da notare è che il recente aggiornamento non è solo un nuovo modo di gestire gli array in Excel. In realtà, si tratta di un cambiamento radicale dell'intero motore di calcolo. Con gli array dinamici, sono state aggiunte un mucchio di nuove funzioni alla libreria di funzioni di Excel e quelle esistenti hanno iniziato a funzionare in modo più veloce ed efficace. Alla fine, i nuovi array dinamici dovrebbero completamentesostituiscono le vecchie formule di matrice che vengono inserite con la scorciatoia Ctrl + Maiusc + Invio.

    Disponibilità di array dinamici di Excel

    Gli array dinamici sono stati introdotti alla conferenza Microsoft Ignite nel 2018 e rilasciati agli abbonati di Office 365 nel gennaio 2020. Attualmente sono disponibili in Abbonamenti a Microsoft 365 e Excel 2021.

    In queste versioni sono supportati gli array dinamici:

    • Excel 365 per Windows
    • Excel 365 per Mac
    • Excel 2021
    • Excel 2021 per Mac
    • Excel per iPad
    • Excel per iPhone
    • Excel per tablet Android
    • Excel per telefoni Android
    • Excel per il web

    Funzioni di array dinamico di Excel

    Nell'ambito delle nuove funzionalità, in Excel 365 sono state introdotte 6 nuove funzioni che gestiscono in modo nativo gli array e producono dati in un intervallo di celle. L'output è sempre dinamico: quando si verificano cambiamenti nei dati di origine, i risultati si aggiornano automaticamente. Da qui il nome del gruppo: "Il gruppo di funzioni". funzioni di array dinamico .

    Queste nuove funzioni sono in grado di affrontare con facilità una serie di compiti tradizionalmente considerati difficili da risolvere: ad esempio, possono rimuovere i duplicati, estrarre e contare i valori unici, filtrare gli spazi vuoti, generare numeri interi e decimali casuali, ordinare in ordine crescente o decrescente e molto altro ancora.

    Di seguito troverete una breve descrizione di ciascuna funzione e i link alle esercitazioni approfondite:

    1. UNICO - estrae elementi unici da una serie di celle.
    2. FILTRO - filtra i dati in base ai criteri definiti dall'utente.
    3. SORT - ordina un intervallo di celle in base a una colonna specificata.
    4. SORTBY - ordina un intervallo di celle in base a un altro intervallo o array.
    5. RANDARRAY - genera un array di numeri casuali.
    6. SEQUENZA - genera un elenco di numeri sequenziali.
    7. TEXTSPLIT - divide le stringhe in base a un delimitatore specificato tra colonne e/o righe.
    8. TOCOL - converte una matrice o un intervallo in una singola colonna.
    9. TOROW - trasforma un intervallo o una matrice in una singola riga.
    10. WRAPCOLS - converte una riga o una colonna in una matrice 2D in base al numero specificato di valori per riga.
    11. WRAPROWS - riformula una riga o una colonna in una matrice 2D in base al numero specificato di valori per colonna.
    12. TAKE - estrae un numero specifico di righe e/o colonne contigue dall'inizio o dalla fine di una matrice.

    Inoltre, esistono due moderni sostituti delle popolari funzioni di Excel, che non fanno ufficialmente parte del gruppo, ma che sfruttano tutti i vantaggi degli array dinamici:

    XLOOKUP - è un successore più potente di VLOOKUP, HLOOKUP e LOOKUP che può cercare sia nelle colonne che nelle righe e restituire più valori.

    XMATCH - è un successore più versatile della funzione MATCH che può eseguire ricerche verticali e orizzontali e restituire la posizione relativa dell'elemento specificato.

    Formule di array dinamico di Excel

    Nelle versioni moderne di Excel, il comportamento degli array dinamici è profondamente integrato e diventa nativo per tutte le funzioni Anche quelle che non sono state originariamente progettate per lavorare con gli array. In parole povere, per qualsiasi formula che restituisce più di un valore, Excel crea automaticamente un intervallo ridimensionabile in cui vengono emessi i risultati. Grazie a questa capacità, le funzioni esistenti possono ora fare magie!

    Gli esempi seguenti mostrano le nuove formule di matrice dinamica in azione e l'effetto delle matrici dinamiche sulle funzioni esistenti.

    Esempio 1. Nuova funzione di array dinamico

    Questo esempio dimostra come sia possibile ottenere una soluzione molto più rapida e semplice con le funzioni di array dinamico di Excel.

    Per estrarre un elenco di valori univoci da una colonna, tradizionalmente si usa una formula CSE complessa come questa. In Excel dinamico, tutto ciò che serve è una formula UNICA nella sua forma di base:

    =UNICO(B2:B10)

    Si inserisce la formula in una qualsiasi cella vuota e si preme Invio. Excel estrae immediatamente tutti i diversi valori presenti nell'elenco e li proietta in un intervallo di celle a partire dalla cella in cui è stata inserita la formula (D2 nel nostro caso). Quando i dati di origine cambiano, i risultati vengono ricalcolati e aggiornati automaticamente.

    Esempio 2. Combinazione di più funzioni di array dinamici in una sola formula

    Per esempio, per filtrare i dati in base a una condizione e disporre i risultati in ordine alfabetico, si può usare la funzione SORT attorno a FILTER in questo modo:

    =SORT(FILTRO(A2:C13, B2:B13=F1, "Nessun risultato"))

    Dove A2:C13 sono i dati di origine, B2:B13 sono i valori da controllare e F1 è il criterio.

    Esempio 3. Utilizzo delle nuove funzioni di array dinamico insieme a quelle esistenti

    Poiché il nuovo motore di calcolo implementato in Excel 365 è in grado di trasformare facilmente le formule convenzionali in array, nulla vieta di combinare insieme nuove e vecchie funzioni.

    Per esempio, per contare quanti valori unici ci sono in un certo intervallo, annidate la funzione UNIQUE dell'array dinamico nella buona vecchia COUNTA:

    =COUNTA(UNIQUE(B2:B10))

    Esempio 4. Le funzioni esistenti supportano gli array dinamici

    Se si fornisce un intervallo di celle alla funzione TRIM in una versione precedente, come Excel 2016 o Excel 2019, questa restituirà un unico risultato per la prima cella:

    =TRIM(A2:A6)

    In Excel dinamico, la stessa formula elabora tutte le celle e restituisce più risultati, come mostrato di seguito:

    Esempio 5. Formula VLOOKUP per restituire valori multipli

    Come tutti sanno, la funzione VLOOKUP è progettata per restituire un singolo valore in base all'indice di colonna specificato. In Excel 365, tuttavia, è possibile fornire una matrice di numeri di colonna per restituire le corrispondenze di più colonne:

    =VLOOKUP(F1, A2:C6, {1,2,3}, FALSE)

    Esempio 6. Formula TRANSPOSE semplificata

    Nelle versioni precedenti di Excel, la sintassi della funzione TRANSPOSE non lasciava spazio a errori: per ruotare i dati nel foglio di lavoro, era necessario contare le colonne e le righe originali, selezionare lo stesso numero di celle vuote ma cambiarne l'orientamento (un'operazione sconcertante in fogli di lavoro enormi!), digitare una formula TRANSPOSE nell'intervallo selezionato e premere Ctrl + Shift + Invio per completarla correttamente.

    In Excel dinamico, è sufficiente inserire la formula nella cella più a sinistra dell'intervallo di output e premere Invio:

    =TRASPOSIZIONE(A1:B6)

    Fatto!

    Intervallo di versamento: una formula, più celle

    Il gamma di fuoriuscite è un intervallo di celle che contiene i valori restituiti da una formula di matrice dinamica.

    Quando viene selezionata una cella qualsiasi dell'intervallo di versamento, appare il bordo blu per indicare che tutto ciò che contiene è calcolato dalla formula nella cella in alto a sinistra. Se si elimina la formula nella prima cella, tutti i risultati spariranno.

    L'intervallo di riempimento è una cosa davvero fantastica che rende la vita degli utenti di Excel molto più semplice. In precedenza, con le formule di array CSE, dovevamo indovinare in quante celle copiarle. Ora, basta inserire la formula nella prima cella e lasciare che Excel si occupi del resto.

    Nota: se altri dati bloccano l'intervallo di fuoriuscita, si verifica un errore #SPILL. Una volta rimossi i dati che ostruiscono l'intervallo, l'errore scompare.

    Per ulteriori informazioni, consultare l'intervallo di fuoriuscita di Excel.

    Campo di sversamento di riferimento (simbolo #)

    Per fare riferimento all'intervallo di versamento, inserire un hashtag o un simbolo di cancelletto (#) dopo l'indirizzo della cella in alto a sinistra dell'intervallo.

    Ad esempio, per sapere quanti numeri casuali sono generati dalla formula RANDARRAY in A2, si deve fornire il riferimento all'intervallo di spillatura alla funzione COUNTA:

    =COUNTA(A2#)

    Per sommare i valori dell'intervallo di fuoriuscita, utilizzare:

    =SOMMA(A2#)

    Suggerimenti:

    • Per fare rapidamente riferimento a un intervallo di versamento, è sufficiente selezionare con il mouse tutte le celle all'interno del riquadro blu ed Excel creerà l'intervallo di versamento per voi.
    • A differenza di un normale riferimento di campo, il riferimento di campo di fuoriuscita è dinamico e reagisce automaticamente al ridimensionamento del campo.
    • Per maggiori dettagli, consultare l'operatore della gamma di fuoriuscite.

      Intersezione implicita e carattere @

      In Excel con array dinamico, c'è un'altra modifica significativa nel linguaggio delle formule: l'introduzione del carattere @, noto come operatore di intersezione implicito .

      In Microsoft Excel, intersezione implicita è un comportamento della formula che riduce molti valori a un singolo valore. Nel vecchio Excel, una cella poteva contenere un solo valore, quindi questo era il comportamento predefinito e non era necessario un operatore speciale.

      Nel nuovo Excel, tutte le formule sono considerate come formule di matrice per impostazione predefinita. L'operatore di intersezione implicita viene utilizzato per impedire il comportamento della matrice se non lo si desidera in una formula specifica. In altre parole, se si desidera che la formula restituisca un solo valore, anteporre @ al nome della funzione e questa si comporterà come una formula non di matrice in Excel tradizionale.

      Per vedere come funziona in pratica, date un'occhiata alla schermata qui sotto.

      In C2, c'è una formula di matrice dinamica che riversa i risultati in molte celle:

      =UNIQUE(A2:A9)

      In E2, la funzione è preceduta dal carattere @ che richiama l'intersezione implicita. Come risultato, viene restituito solo il primo valore univoco:

      =@UNIQUE(A2:A9)

      Per ulteriori informazioni, vedere Intersezione implicita in Excel.

      Vantaggi degli array dinamici di Excel

      Senza dubbio gli array dinamici sono uno dei migliori miglioramenti di Excel degli ultimi anni. Come ogni nuova funzione, hanno punti di forza e punti deboli. Fortunatamente per noi, i punti di forza delle nuove formule di array dinamici di Excel sono schiaccianti!

      Semplice e più potente

      Gli array dinamici consentono di creare formule più potenti in modo molto più semplice. Ecco un paio di esempi:

      • Estrarre valori unici: formule tradizionali
      • Conteggio di valori unici e distinti: formule tradizionali
      • Ordinare le colonne in ordine alfabetico: formule tradizionali

      Nativo per tutte le formule

      In Excel dinamico, non è necessario preoccuparsi di quali funzioni supportano gli array e quali no. Se una formula può restituire più valori, lo farà per impostazione predefinita. Questo vale anche per le operazioni aritmetiche e le funzioni tradizionali, come dimostrato in questo esempio.

      Funzioni di array dinamici annidati

      Per trovare soluzioni a compiti più complessi, siete liberi di combinare le nuove funzioni di array dinamico di Excel o di usarle insieme a quelle vecchie, come mostrato qui e qui.

      I riferimenti relativi e assoluti sono meno importanti

      Grazie all'approccio "una formula, molti valori", non è necessario bloccare gli intervalli con il segno $ poiché, tecnicamente, la formula si trova in una sola cella. Quindi, per la maggior parte, non importa se utilizzare riferimenti di cella assoluti, relativi o misti (che sono sempre stati fonte di confusione per gli utenti inesperti): una formula di matrice dinamica produrrà comunque risultati corretti!

      Limitazioni degli array dinamici

      I nuovi array dinamici sono fantastici, ma come per ogni nuova funzione, ci sono alcune avvertenze e considerazioni da tenere presenti.

      I risultati non possono essere ordinati nel modo consueto

      L'intervallo di versamenti restituito da una formula di matrice dinamica non può essere ordinato utilizzando la funzione di ordinamento di Excel. Qualsiasi tentativo in tal senso provocherà l'errore " Non è possibile modificare una parte di una matrice "Per ordinare i risultati dal più piccolo al più grande o viceversa, avvolgere la formula corrente nella funzione SORT. Ad esempio, ecco come filtrare e ordinare alla volta.

      Impossibile eliminare un valore nell'intervallo di spillatura

      Nessuno dei valori di un intervallo di spillatura può essere eliminato per lo stesso motivo: non è possibile modificare una parte di una matrice. Questo comportamento è previsto e logico. Anche le formule di matrice CSE tradizionali funzionano in questo modo.

      Non sono supportati nelle tabelle di Excel

      Questa funzione (o bug?) è piuttosto inaspettata. Le formule di array dinamici non funzionano all'interno delle tabelle di Excel, ma solo all'interno di intervalli regolari. Se si tenta di convertire un intervallo di versamento in una tabella, Excel lo farà, ma al posto dei risultati verrà visualizzato solo un errore #SPILL!

      Non funziona con Excel Power Query

      I risultati delle formule degli array dinamici non possono essere caricati in Power Query. Ad esempio, se si cerca di unire due o più intervalli di spillatura utilizzando Power Query, non funzionerà.

      Array dinamici vs. formule di array CSE tradizionali

      Con l'introduzione degli array dinamici, possiamo parlare di due tipi di Excel:

      1. Excel dinamico che supporta pienamente gli array dinamici, le funzioni e le formule. Attualmente sono disponibili solo Excel 365 ed Excel 2021.
      2. Excel tradizionale Excel tradizionale o pre-dinamico, in cui sono supportate solo le formule di matrice Ctrl + Maiusc + Invio. Si tratta di Excel 2019, Excel 2016, Excel 2013 e versioni precedenti.

      È ovvio che le matrici dinamiche sono superiori alle formule di matrice CSE sotto tutti i punti di vista. Sebbene le formule di matrice tradizionali vengano mantenute per motivi di compatibilità, d'ora in poi si raccomanda di utilizzare le nuove formule.

      Ecco le differenze più essenziali:

      • Una formula di matrice dinamica viene inserita in una cella e completata con la normale pressione del tasto Invio. Per completare una formula di matrice vecchio stile, è necessario premere Ctrl + Shift + Invio .
      • Le nuove formule di matrice si riversano automaticamente in molte celle. Le formule CSE devono essere copiate in un intervallo di celle per restituire più risultati.
      • L'output delle formule di matrice dinamica si ridimensiona automaticamente al variare dei dati nell'intervallo di origine. Le formule CSE troncano l'output se l'area di ritorno è troppo piccola e restituiscono errori in celle extra se l'area di ritorno è troppo grande.
      • Una formula di matrice dinamica può essere facilmente modificata in una singola cella, mentre per modificare una formula CSE è necessario selezionare e modificare l'intero intervallo.
      • Non è possibile eliminare e inserire righe in un intervallo di formule CSE: è necessario eliminare prima tutte le formule esistenti. Con gli array dinamici, l'inserimento o l'eliminazione di righe non è un problema.

      Compatibilità con le versioni precedenti: array dinamici in Excel legacy

      Quando si apre una cartella di lavoro contenente una formula di matrice dinamica in un vecchio Excel, questa viene automaticamente convertita in una formula di matrice convenzionale racchiusa da {parentesi graffe}. Quando si riapre il foglio di lavoro in un nuovo Excel, le parentesi graffe vengono rimosse.

      In Excel legacy, le nuove funzioni di array dinamico e i riferimenti all'intervallo di versamento vengono preceduti dal prefisso _xlfn per indicare che questa funzionalità non è supportata. Il segno di riferimento all'intervallo di versamento (#) viene sostituito dalla funzione ANCHORARRAY.

      Ad esempio, ecco come appare una formula UNIQUE in Excel 2013 :

      La maggior parte delle formule di matrice dinamica (ma non tutte!) continua a visualizzare i risultati in Excel fino a quando non vengono apportate modifiche. La modifica di una formula la interrompe immediatamente e visualizza uno o più valori di errore #NOME?

      Le formule della matrice dinamica di Excel non funzionano

      A seconda della funzione, possono verificarsi errori diversi se si utilizza una sintassi errata o argomenti non validi. Di seguito sono riportati i 3 errori più comuni in cui si può incorrere con qualsiasi formula di array dinamico.

      Errore #SPILL!

      Quando un array dinamico restituisce più risultati, ma qualcosa blocca l'intervallo di fuoriuscita, si verifica un errore #SPILL!

      Per risolvere l'errore, è sufficiente cancellare o eliminare tutte le celle dell'intervallo di fuoriuscita che non sono completamente vuote. Per individuare rapidamente tutte le celle che sono d'intralcio, fare clic sull'indicatore di errore e poi su Selezionare le cellule che ostacolano .

      Oltre che da un intervallo di spillatura non vuoto, questo errore può essere causato da alcuni altri motivi. Per ulteriori informazioni, consultare la sezione "Interventi":

      • Errore di Excel #SPILL - cause e soluzioni
      • Come risolvere l'errore #SPILL! con VLOOKUP, INDEX MATCH e SUMIF

      errore #REF!

      A causa del supporto limitato per i riferimenti esterni tra cartelle di lavoro, gli array dinamici richiedono che entrambi i file siano aperti. Se la cartella di lavoro di origine viene chiusa, viene visualizzato un errore #REF!

      #NOME? errore

      Si verifica un errore #NAME? se si tenta di utilizzare una funzione array dinamico in una versione precedente di Excel. Ricordate che le nuove funzioni sono disponibili solo in Excel 365 e Excel 2021.

      Se questo errore compare nelle versioni di Excel supportate, ricontrollate il nome della funzione nella cella problematica: è probabile che sia stato digitato male :)

      Ecco come utilizzare gli array dinamici in Excel. Speriamo che questa nuova fantastica funzionalità vi piaccia! Comunque, vi ringrazio per la lettura e spero di vedervi sul nostro blog la prossima settimana!

    Michael Brown è un appassionato di tecnologia dedicato con una passione per la semplificazione di processi complessi utilizzando strumenti software. Con oltre un decennio di esperienza nel settore tecnologico, ha affinato le sue competenze in Microsoft Excel e Outlook, nonché in Fogli Google e Documenti. Il blog di Michael è dedicato alla condivisione delle sue conoscenze e competenze con gli altri, fornendo suggerimenti e tutorial facili da seguire per migliorare la produttività e l'efficienza. Che tu sia un professionista esperto o un principiante, il blog di Michael offre spunti preziosi e consigli pratici per ottenere il massimo da questi strumenti software essenziali.