logo di Marco Braglia

Python in Excel in anteprima: come ottenerlo, come usarlo e cosa significa?

PYTHON
8 minuti di lettura

Microsoft ha rilasciato, in anteprima solo per gli iscritti al canale Beta del programma Microsoft 365 Insiders, la funzionalità Python in Excel.

Python e Excel sono due strumenti molto potenti nel mondo dell'automazione e dell'analisi dei dati. Cosa significa averli a disposizione insieme?

In questo articolo introduttivo imparerai come ottenere questa funzionalità in anteprima e come iniziare ad utilizzarla. Vedremo inoltre anche quali implicazioni porta con sé questa novità e la mia personale opinione a riguardo.

Annunci e documentazione Microsoft

L'annuncio dell'integrazione di Python in Excel è stato fatto da Microsoft il 22 Agosto 2023 e, da settembre 2023, dopo una fase di rilascio graduale, è finalmente disponibile a tutti gli iscritti al canale Beta di Microsoft 365 su piattaforma Windows con una licenza Enterprise, Business, Education, Family oppure Personal.

È importante quindi notare che questa integrazione non è ancora disponibile su Mac, Android o sul web, ma potrebbe essere estesa a queste piattaforme in futuro.

Pyhton in Excel è reso disponibile tramite la partnership tra Microsot e Anaconda, un repository Python usato da decine di milioni di data scientists al mondo. In particolare, Python in Excel usa la distribuzione di Anaconda su cloud Azure, che include le librerie Python più popolari tra cui pandas per la manipolazione dei dati, statsmodel per modelli statistici e matplotlib per la visualizzazione di dati.

NB: distribuzione su cloud Azure significa che non è necessario installare Python sul proprio PC ma è necessaria la connessione internet per poterlo utilizzare e i tuoi dati insieme ai comandi Python vengono inviati al cloud Azure dove avviene l'esecuzione del codice che poi ti restituirà i risultati!!!

La funzionalità di Python in Excel, finché rimane in anteprima, sarà compresa nella tua licenza Microsoft 365. Dopo l'anteprima, alcune funzionalità saranno limitate senza una licenza attiva separata.

Link ufficiali:

Ottieni la funzionalità in anteprima

Python in Excel è accessibile tramite questa nuova sezione nel menu Formule di Excel:

python in excel anteprima, sezione del menu formule

Se non la vedi significa che non sei correttamente iscritto al programma Microsoft 365 Insider tramite canale Beta. Per iscriverti segui i passaggi seguenti:

  1. Clicca su "File" -> "Account"
aprire menu Account in Excel
  1. Clicca sul quadrato "Microsoft 365 Insider" poi su "Cambia Canale"
microsoft 365 insider, cambia canale
  1. Assicurati di essere iscritto al programma selezionando la prima checkbox in alto.
  2. Dal menu a tendina, seleziona il canale Beta.
  3. Metti la spunta su Cerca e applica aggiornamenti.
  4. Clicca il pulsante OK per confermare.
microsoft 365 insider, attivazione e cambio canale

Lascia il tempo a Microsoft Office di aggiornarsi e vedrai la nuova sezione del menu dedicata a Python in Excel.

Librerie Python Preinstallate

Una delle caratteristiche principali di Python in Excel è l'accesso a librerie Python preinstallate grazie ad Anaconda. Possiamo verificare quali librerie sono già a disposizione in modo predefinito cliccando, nel menu Python in Excel, la voce Inizializzazione.

python in excel, inizializzazione

Si aprirà, sulla destra, una sezione con il dettaglio degli import predefiniti che abbiamo a disposizione:

Più librerie e impostazioni per interagire direttamente con Excel:

Infine, vediamo alcune impostazioni per la funzione xl() che utilizzeremo in seguito:

python in excel, inizializzazione librerie incluse

Primi passi e l'oggetto Pandas Data Frame

Per utilizzare Python in Excel puoi agire in due modi:

  1. tramite il menu di Python clicca su Inserisci Python
python in excel, inserisci python da menu
  1. direttamente in una cella digita, come se stessi inserendo una normale formula Excel, il comando =PY + TAB sulla tastiera oppure digita =PY( con la parentesi aperta. Attenzione che se digiti =PY e poi dai INVIO sulla tastiera ti risulterà un errore. Se hai fatto correttamente vedrai una etichetta verde a fianco della cella e della barra della formula con la scritta PY e potrai iniziare a scrivere il codice Python in Excel.
python in excel, inserisci python da formula

NB: con il tasto INVIO della tastiera andrai a capo dentro la barra della formula. Per committare ed eseguire il codice Python in Excel devi cliccare CTRL+INVIO sulla tastiera.

Un aspetto cruciale dell'integrazione di Python in Excel è l'uso dell'oggetto Pandas Data Frame. Pandas è una libreria Python che offre strutture dati flessibili per l'analisi dei dati. Con Pandas Data Frame, è possibile effettuare operazioni complesse su dati tabellari direttamente in Excel.

Se, mentre scrivi nel codice Python in Excel, con il mouse vai a selezionare un intervallo di celle direttamente sul foglio (come faresti in una normale formula), il codice si autocompilerà usando la funzione xl():

python in excel, selezione intervallo funzione xl()

Cos'è questa funzione xl()??? Scopriamolo insieme usando il log di Python tramite il comando print e type.

Nella barra di Python in Excel, modifica il codice nel modo seguente:

table = xl("A1:B5")
 
print(type(table))

Cliccando CTRL+INVIO verrà eseguito il codice Python in Excel e sulla destra si aprira la scheda Diagnostica dove puoi vedere il log degli errori o di quello che hai stampato appositamente, come in questo caso.

python in excel, oggetto pandas dataframe

Gli intervalli di dati in Excel sono quindi interpretati dal Python e trasformati in oggetti "DataFrame" della libreria Pandas. Ti lascio qui il link alla documentazione ufficiale di Pandas relativa all'oggetto DataFrame senza scendere ulteriormente nel dettaglio in questo articolo.

Il tipo di output

Proseguendo dall'esempio precedente e togliendo il print(type(table)) dal codice puoi vedere come nel foglio Excel, nella cella dove hai inserito il Python, è ora presente la voce "DataFrame" (che come abbiamo appena visto fa riferimento a un Pandas DataFrame):

python in excel, output dataframe

Questo significa che l'output dell'elaborazione Python in Excel restituisce a sua volta un oggetto Python (Pandas DataFrame) che potremo poi utilizzare come input per altre elaborazioni Python in Excel.

Se invece vuoi avere un output in formato tabellare di Excel, puoi modificare il tpo di output dal menu a tendina a sinistra della barra della formula selezionando tra le due opzioni:

python in excel, selezione tipo output

Selezionando l'opzione "Valore di Excel" il risultato sul foglio cambia mostrato l'elaborazione finale:

python in excel, output valore di excel

Esempio Pratico

Consideriamo ora un piccolo esempio pratico, che viene direttamente da una richiesta di utente nel gruppo Facebook.

Dobbiamo eliminare i duplicati da una matrice espansa di dati in Excel, lasciando un elemento nella posizione iniziale della prima occorrenza ed eliminando le successive occorrenze.

python in excel, esempio pratico: risultato desiderato

Possiamo farlo utilizzando Python in Excel per muovere i primi passi con le automazioni Python.

Scriviamo quindi un piccolo algoritmo che, a parole:

  1. legge l'intervallo dati iniziale e lo salva in una variabile;
  2. usa un array di appoggio per verificare se un valore è stato già incontrato o no;
  3. se un valore è stato già incontrato, lo sostiuisce con un valore vuoto;
  4. se un valore è nuovo, lo lascia nella tabella e lo aggiunge all'array di appoggio.

Il codice da usare è il seguente:

table = xl("B3#")
arr = []
 
for column,serie in table.items():
    for index,value in serie.items():
        if value == 0 or value in arr:
            table.iloc[index,column]=""
        if value != 0 and value not in arr: arr.append(value)
table

Conclusioni

In questo articolo abbiamo appena "grattato la superficie" dell'integrazione di Python in Excel, ma ti ho dato tutte le informazioni di base per iniziare ad utilizzarlo e ad approfondirne le potenzialità.

L'integrazione di Python in Excel apre nuove opportunità per l'automazione e l'analisi dei dati. Tuttavia, è importante comprendere le implicazioni legate alla necessità di connessione internet e alla privacy dei dati prima di tuffarsi nello studio e nell'utilizzo di questa nuova funzionalità.

La mia opinione personale è che Python in Excel NON sostituirà assolutamente le macro VBA nel medio periodo. Se quindi sei, come me, un esperto di automazone in Excel tramite Macro VBA puoi dormire sonni tranquilli ancora per parecchi anni!

Il consiglio che ti lascio è quindi quello di non utilizzare Python in Excel per attività critiche e centrali della tua attività lavorativa e professionale ma di iniziare a studiarlo e utilizzarlo in progetti a scopo didattico nell'attesa delle future evoluzioni da parte di Microsoft.

Ci si vede nel gruppo Facebook.

#ExcelHaSempreRagione