Accade spesso di ricevere o spedire una tabella excel (o di testo, che comunque viene poi aperta con excel) da un collega che ha impostazioni dei separatori decimali e delle migliaia diverse dalle nostre. Il file, aperto con un editor di testo, ha il seguente aspetto:

Separatori_Orig_File

Se invece provate ad aprirlo con Excel, il risultato, è che uno dei due vedrà il file in maniera uqasi incomprensibile, come mostrato sotto.

Separatori_Orig_Excel_File

Premessa: io ho sempre utilizzato il punto come separatore decimale e la virgola come separatore delle migliaia, credendo che esso fosse lo standard internazionale. Con mio disappunto ho invece scoperto che entrambe le notazioni sono ammesse. In altre parole, un mezzo può essere scritto 0.5 o 0,5. In genere le nazioni europee utilizzano la virgola come separatore decimale e il punto come separatore delle migliaia, mentre le nazioni anglosassoni e la Cina fanno l’opposto. Va precisato che tutte le riviste scientifiche richiedono il punto come separatore decimale e la virgola come separatore delle migliaia. Suggerisco perciò a chiunque lavori in ambito scientificio di adeguarsi a questa modalità.

Ciò detto, cambiare tra i vari standard è molto semplice, vediamo di seguito come fare.

Excel 2016

Se il file che avete ricevuto ha l’aspetto di quello mostrato sopra, probabilmente avete ricevuto un file in cui il punto è usato come separatore decimale e il vostro Excel ha la specifica opposta. Per visualizzare correttamente il file dovete agire come segue. Innanzitutto chiudete il file ed aprite un file vuoto in Excel. Selezionate la voce File, in alto a sinistra. Si aprirà un afinestra, sul cui lato sinistro avrete varie voci. Selezionate quella più in basso, “Opzioni”; si aprirà una nuova finsetra. Selezionate “Impostazioni avanzate” e vi troverete di fronte una vista come quella sotto.

Opzioni_Excel_01

A questo punto, vi basterà assicurarvi che  il separatore decimale sia un punto come nella foto sopra e quello delle migliaia sia una virgola. Adesso quando aprirete il file, esso si aprirà correttamente, come mostrato sotto.

Separatori_Orig_Excel_File_Final

Unica nota dolente: ogni volta che ricevete un file con specifiche diverse dalle vostre, al fine di visualizzarlo correttamente dovrete ripetere la procedura.

Libreoffice (6.1)

In Libreoffice, la gestione è simile a quella di Excel ma, per quanto ho avuto modo di constatare, ancora migliore. Infatti, anche nella sfortunata situazione in cui le vostre specifiche siano diverse da chi vi ha inviato il file, Libreoffice sarà in genere abbastanza intelligente da utilizzare i separatori appropriati. Io ho fatto la prova di forzare i separatori all’italiana così: in libreoffice calc (l’equivalente di excel) scegliere la voce Strumenti e da lì Opzioni, si aprirà una finestra in cui dovete scegliere Impostazioni della Lingua, Lingue. Io di solito tengo Stati Uniti come impostazione locale, in modo da avere il punto come separatore decimale. In questo caso, ho messo Italia, in modo da avere la virgola come separatore decimale, come mostrato sotto.

Separatori_Libreoffice_comma

Nonstante ciò, se apro il file di  testo di cui sopra, in cui il separatore decimale è il punto, esso viene aperto correttamente da Libreoffice, come mostrato sotto.

Separatori_Libreoffice_Results

Una nota: non ho fatto test estensivi, ma sono abbastanza sicuro che esistano situazioni in cui libreoffice possa confondersi con i separatori, per cui  suggerisco sempre di dare uno sguardo.

R

Infine, per chi (come me) è un fornitore di dati ottenuti con R, è possibile decidere quale separatore usare una volta che si salva il file. Mi sembra incredibile aver aspettato anni prima di impararlo, ma è veramente facilissimo. Immaginiamo che abbiate il data.frame dei risultati (chiamato, con una botta di fantasia, “results”) pronto da salvare, ma i vostri collaboratori che lo riceveranno hanno excel con la virgola come separatore decimale. Vi basterà eseguire il seguente comando prima di salvare su file, e il gioco è fatto.


newresults<-format(results,decimal.mark=",")

Tenendo presenti tutte queste possibilità, la conversione tra formati sarà un gioco da ragazzi!