Excel è l’unico programma Microsoft che uso con continuità senza lamentarmi, anzi perfino con una certa soddisfazione. Essendo un utilizzatore critico (ma non ostile) dei prodotti Microsoft – oltre che un utente di lunga data dei sistemi operativi concorrenti OS X e Linux – direi che questo sia un grosso complimento per il programma.
Killer app
Nei primi anni ‘80 il foglio elettronico (ricordate il VisiCalc?) è stato la prima killer app, il programma che ha fatto vendere montagne di Apple II, prima, e di PC IBM dopo, convincendo gli scettici che un computer poteva pur servire a qualcosa (oltre che a giocare o a scrivere i report in cucina mentre la moglie preparava la cena).
Non è stato un caso. A quei tempi (ma non è che oggi sia cambiato molto) tutte le altre applicazioni da ufficio non facevano altro che riprodurre con il computer quello che si era fatto per anni ed anni in modo analogico, basandosi sulla carta.
I software di videoscrittura rendevano più facile la scrittura – e soprattutto la correzione – di un documento rispetto alla macchina da scrivere, ma cercavano anche di rendere il più possibile uguale sullo schermo l’aspetto del foglio di carta. Perfino la tastiera del computer copiava pedissequamente la forma e la disposizione dei tasti di una macchina da scrivere!
Lo stesso per i software di presentazione, con i quali si stampava sui fogli di acetato per lavagna luminosa, i lucidi, invece che scriverci sopra a mano con i pennarelli indelebili (una cosa che mi piaceva tantissimo). O per le email; a parte la velocità, che differenza sostanziale c’è fra una email elettronica e una infilata nella buca delle lettere?
Il foglio elettronico, lo spreadsheet, è un’altra cosa: è qualcosa che non esisteva prima del ‘79 e che solo il computer ha reso possibile.
[caption id=”attachment_2740” align=”aligncenter” width=”600”] Figura 1. Mattoncini Lego “classici”.[/caption]
Il foglio elettronico è come una scatola di mattoncini Lego, si può usare per tantissimi compiti profondamente diversi. E come con i mattoncini Lego – quelli originali, non quelli troppo specifici degli ultimi anni – basta un po’ di fantasia per costruire qualunque cosa.
Excel
Ho iniziato ad usare i fogli elettronici ai tempi della tesi, a metà degli anni ‘80. Prima il Lotus 123, poi Borland Quattro e infine, dopo alcuni anni, Excel. Dopo Excel non c’è stato niente di veramente nuovo.
Excel si può usare per troppe cose diverse per riuscire a elencarne tutte le funzioni più utili. Ogni utente avrà le sue preferenze, a seconda del modo in cui utilizza il programma: fare dei calcoli, gestire basi di dati, analizzare o visualizzare i dati.
Per quanto mi riguarda, le funzioni di Excel che considero fondamentali sono pochissime. Appena tre. Ma Excel le implementa in modo corretto, mentre i principali concorrenti – Numbers di Apple, Sheets di Google e Calc, il foglio elettronico di LibreOffice – hanno tutti qualche deficienza più o meno grave.
I fogli elettronici sono stati analizzati usando l’ultima versione disponibile al momento della scrittura di questo articolo: per Excel la versione 15.24 (160709), per Numbers la 3.6.2 (2577), per Calc la 5.1.4.2, mentre Sheets, un prodotto che gira solo online e viene aggiornato automaticamente da Google, manca di un numero di versione pubblico.
I primi tre fogli elettronici sono stati utilizzati in lingua italiana, perché questo è il modo d’uso prevalente fra i lettori oltre che un fattore fondamentale nell’analisi che segue. Solo Sheets è stato utilizzato in inglese, perché i risultati ottenuti non dipendono dalla lingua. Tutte le prove sono state eseguite sotto OS X El Capitan 10.11.6, scegliendo l’italiano come lingua principale. Anche le date e i numeri sono impostate nel sistema operativo con il formato italiano ma, per ragioni che saranno chiare fra poco, usano come separatore decimale il punto al posto della virgola.
1. Importazione di dati da file di testo
Per me è una funzione fondamentale. In genere parto da file di testo contenenti parecchie serie di dati in colonna, separate da virgole, spazi o tabulazioni (file CSV),1 e li importo in Excel per una veloce analisi preliminare (per quelle più dettagliate c’è R o Mathematica).
Si noti che questi file seguono le regole anglosassoni e usano sempre il punto come separatore decimale; la virgola utilizzata in Italia (e in almeno altri 65 Paesi) non va bene, perché può essere confusa con il separatore di colonna.2 Come già detto, anche OS X è configurato per usare come separatore decimale il punto invece della virgola.
Excel inghiotte tutto senza problemi. Basta scegliere durante l’importazione il separatore di colonna giusto ed Excel importa i dati senza errori. Se sbaglia, lo fa in genere a causa di qualche svista dell’utente.
Provate a fare lo stesso con Numbers: se le colonne sono separate da virgole o tabulazioni, tutto bene. Ma se i separatori sono gli spazi, i dati non vengono separati in colonne ed ogni riga di dati finisce in un’unica, grande cella (Figura 2). Purtroppo non ci sono nemmeno opzioni di configurazione: se il file rispetta i desideri di Numbers viene importato correttamente, altrimenti non c’è niente da fare.
[caption id=”attachment_2741” align=”aligncenter” width=”600”] Figura 2. Numbers: importazione di dati separati da spazi.[/caption]
Sheets è come Numbers: tutto bene se si importano file in cui i separatori sono virgole o tabulazioni ma, se il separatore è lo spazio, i dati non vengono separati in colonne.
Calc, come Excel, permette di configurare le modalità di importazione. Ma sbaglia miserabilmente. Anche se l’anteprima in fase di importazione sembra corretta,3 il foglio elettronico risultante è completamente sballato, come si può vedere nelle Figure 3a e 3b. Anzi, l’importazione dei dati sembra quasi casuale: i numeri importati possono comparire nella stessa colonna a volte con il punto decimale, altre volte senza, nonostante abbiano tutti lo stesso formato nel file di partenza.
[caption id=”attachment_2742” align=”aligncenter” width=”600”] Figura 3a. Calc: configurazione dell’importazione dei dati.[/caption]
[caption id=”attachment_2743” align=”aligncenter” width=”600”] Figura 3b. Calc: foglio elettronico risultante.[/caption]
Si potrebbe obiettare che Calc è impostato per la lingua italiana ma che i dati sono formattati secondo le regole anglosassoni. Vero, ma anche per Excel o per Numbers è così, e nonostante ciò importano i dati correttamente (a parte la questione degli spazi in Numbers). E in ogni caso il formato dei numeri decimali è impostato a livello del sistema operativo, ma chiaramente Calc non ne tiene conto.
Infatti, se seleziono la lingua Inglese (USA) nella finestra di dialogo dell’importazione, Calc importa i file correttamente ma scrive tutti i numeri in formato italiano, con la virgola al posto del punto decimale (Figure 4a e 4b). Se vi sentite confusi non preoccupatevi, non siete gli unici.
[caption id=”attachment_2744” align=”aligncenter” width=”600”] Figura 4a. Calc: selezione della lingua di importazione.[/caption]
[caption id=”attachment_2745” align=”aligncenter” width=”600”] Figura 4b. Calc: foglio elettronico importato, con la virgola al posto del punto decimale.[/caption]
È evidente che la routine di importazione dei dati di Calc è gravemente bacata e si comporta in modo incomprensibile. La natura multipiattaforma di Calc in questo caso è negativa: il programma non rileva le impostazioni definite dall’utente a livello del sistema operativo, ma preferisce fare da se. E lo fa male.
2. Gestione di fogli elettronici di grosse dimensioni
Prendete un file di testo di 75 MB, contenente dati distribuiti su una trentina di colonne e su ben mezzo milione di righe (!), e fatelo aprire ad Excel. Sarà un po’ lento ma ce la farà (però non azzardatevi ad usarlo se il vostro Mac non è di ultima generazione).
Provate ad aprire lo stesso file con Numbers e, mentre aspettate, avrete il tempo di preparare il caffé. E comunque non vi servirà a niente, perché Numbers vi mostrerà solo le prime 65535 righe del file.
Con Sheets non vale nemmeno la pena provare, è ancora impossibile gestire una tale quantità di dati con uno strumento online. Anzi, sono testardo e alla fine ci ho provato: l’upload del file è veloce, ma poi Sheets si arrende informandomi che il file è “Too large to import. Remove rows or columns and try again.” (Troppo grande per essere importato. Rimuovi alcune righe o colonne e riprova).
Calc, infine, apre il file molto più lentamente di Excel ma senza darvi il tempo di preparare il caffé. Naturalmente i problemi di importazione descritti prima rimangono inalterati.
3. Riferimenti circolari
Questa è una funzione che apparentemente serve a pochi. Consiste nella possibilità di definire delle relazioni fra le celle senza seguire l’ordine normale di calcolo, da sinistra a destra e dall’alto al basso, ma un ordine qualsiasi. Tecnicamente queste definizioni non ordinate si chiamano riferimenti circolari.
Supponiamo di voler usare il foglio elettronico per elaborare il bilancio di una azienda che detrae dal fatturato, oltre alle spese ordinarie, anche le donazioni a qualche ente benefico. Supponiamo inoltre che l’entità delle donazioni sia proporzionale all’utile netto, cioè quello che rimane dopo le imposte. Ecco che si crea un riferimento circolare: non possiamo calcolare le donazioni se non conosciamo l’utile netto, ma l’utile netto dipende dall’entità delle detrazioni e quindi anche dall’importo donato.
Il concetto è mostrato nel foglio elettronico seguente, che contiene due esempi molto semplici di bilancio (Figura 5). Nella colonna B le donazioni sono una percentuale delle spese, definite nella riga precedente (quindi non ci sono riferimenti circolari), nella colonna C, invece, le donazioni dipendono dall’utile netto, che è calcolato alcune righe più sotto (e quindi è presente un riferimento circolare). Per chiarezza, le colonne E ed F contengono i dati e le formule usate per definire le celle delle colonne B e C.
[caption id=”attachment_2746” align=”aligncenter” width=”600”] Figura 5. Riferimenti circolari.[/caption]
Al di là degli aspetti tecnici, quello che interessa qui è che Excel riesce ad eseguire il calcolo senza problemi. Molto utile è la possibilità di visualizzare con delle frecce la presenza e il verso delle relazioni fra le celle, mettendo chiaramente in evidenza la presenza dei riferimenti circolari. Bisogna però attivare l’uso del calcolo iterativo nelle preferenze del programma, altrimenti anche Excel da errore.
Numbers e Sheets invece non supportano i riferimenti circolari, come è facile verificare importando il foglio Excel contenente i riferimenti circolari in uno dei due programmi.
Calc funziona come Excel, ma anche qui bisogna attivare i riferimenti circolari nelle opzioni del programma. Anche Calc mostra con le frecce le relazioni fra le celle, ma i comandi per farlo sono sepolti nel menu Strumenti e sono molto meno accessibili che in Excel.
I riferimenti circolari sembrano una cosa campata in aria, ma in realtà aprono infinite possibilità all’uso di Excel (o di Calc) in ambiti avanzati (ma questo lo vedremo una prossima volta).
Non ci sono solo rose
Purtroppo Microsoft fa di tutto per mettere i bastoni fra le ruote agli utenti del Mac, e nell’ultima versione di Excel contenuta in Office 2016 ha reso più complicato importare i file di dati (ma non lo ha fatto nella versione corrispondente per Windows).
Fino ad Office 2011, infatti, era possibile importare in Excel qualunque tipo di file di testo, indipendentemente dalla sua estensione. Con Office 2016, invece, è possiile importare solo i file con determinate estensioni, fra cui .txt
, .log
e naturalmente .csv
. Se un file finisce con .dat
o .out
non si può più importare, a meno di duplicarlo o di rinominarlo con una estensione compatibile.
Ma spesso è poco opportuno copiare o rinominare un file: ci possono essere conflitti con altri file, si può modificare qualcosa nel file originale dimenticando di eseguire la modifica anche nella copia, o dopo un po’ ci si può semplicemente dimenticare la ragione per aver creato due file uguali ma con nomi diversi.
Purtroppo non si può nemmeno imbrogliare Excel, utilizzando i collegamenti simbolici o gli alias tipici di OS X. L’unica opzione possibile è usare un hard-link, che crea una copia fittizia del file originale, che si aggiorna automaticamente se quest’ultimo viene modificato.
Non è di certo la soluzione ottimale ma funziona. Speriamo però che il problema sia solo temporaneo e che la Microsoft ci ripensi.
Conclusioni
Quando si tratta di fogli elettronici, il mio preferito da molti anni è Excel, non tanto perché ha moltissime funzioni (perfino troppe), ma perché fa bene quello che mi serve veramente.
L’unico concorrente significativo è Calc, il foglio elettronico di LibreOffice, che ha però grossi problemi nell’importazione dei file di dati.
Rispetto a questi due pesi massimi Numbers di Apple è un bel giocattolo, ottimo per realizzare fogli elettronici molto gradevoli dal punto di vista grafico, ma troppo limitato nelle funzioni, mentre Sheets di Google è interessante perché funziona in un qualunque browser, ma ha anch’esso funzionalità troppo ridotte per essere veramente utile.
Perché Excel e non Calc, allora? Calc, a parte i problemi di importazione, è senza dubbio un ottimo programma, ma in passato a sofferto di troppi problemi di compatibilità con i file .xls
, che hanno impedito a tanti utenti, me compreso, di usare il programma (e poi non mi piaceva il modo in cui realizzava i grafici). Inoltre, dopo tanti anni di uso pesante, sono troppo abituato all’interfaccia di Excel per avere voglia di cambiare. A meno di non trovare qualche ragione significativa per farlo. Mai dire mai.
-
Un file CSV (Comma Separated Values) a rigore è un file di testo strutturato, contenente una tabella di dati. Ogni riga della tabella (record) è suddivisa in uno o più campi, separati da una virgola (da cui il nome). I campi corrispondenti delle diverse righe della tabella si organizzano in colonne, ciascuna con un formato (testo o numero) omogeneo. Per estensione, il termine
file CSV
è ormai passato ad indicare un qualunque file di testo strutturato, indipendentemente dal carattere usato per separate i campi (o le colonne), che quindi può essere indifferentemente la virgola, lo spazio, la tabulazione (o anche caratteri meno comuni, come il punto e virgola o i due punti). ↩ -
La maggior parte delle considerazioni riportate non cambia usando numeri formattati con le specifiche dell’italiano. ↩
-
In realtà non lo è: è vero che la finestra di dialogo di importazione separa correttamente le colonne, ma è altrettanto vero che tutti i numeri sono in effetti mostrati come stringhe, come è evidente guardando il modo in cui sono allineati (a sinistra) nelle singole celle. ↩