Fogli elettronici Snippet – Da Stringa a data
Elaborando dati provenienti dalle fonti più svariate capita di dover trasformare delle stringhe contenti date nel formato data classico di Excel/Calc così da poter fare delle elaborazioni. Vediamo il metodo più immediato.
I nostri dati
Mettiamo di avere un foglio di calcolo contenente i seguenti dati (nel mio caso scaricati da AS/400, ma con i nomi taroccatissimi)
Aggiungere zeri davanti alla stringa
Come possiamo vedere la stringa di testo ha lunghezze diverse (anche se sempre in formato giorno, mese e anno)
- GMMAAAA
- GGMMAAAA
Le stringhe contenti date con il giorno inferiore a 10 sono lunghe 7 caratteri mentre le altre 8, per la trasformazione abbiamo bisogno che tutte le stringhe abbiano la stessa lunghezza. Possiamo risolvere aggiungendo uno zero davanti alle più corte. Ordiniamo per data e creiamo una colonna di appoggio che poi butteremo via:
Adesso nella colonna Appoggio (C) possiamo usare la formula di concatenazione veloce per tutte quelle data che hanno il giorno inferiore a 10, nel nostro caso le prime due:
=0&CELLA
Nel nostro caso:
=0&b2
Estraiamo la data
Una volta aggiunti li zeri abbiamo:
- nei caratteri 1 e 2 il giorno
- nei caratteri 3 e 4 il mese
- nei caratteri 5,6,7 e 8 l’anno
Possiamo usare quindi la formula DATA che come argomenti richiede anno;mese;giorno. Ecco la semplice formula:
=data(stringa.estrai(CELLA;5;4);stringa.estrai(CELLA;3;2);stringa.estrai(CELLA;1;2))
Nel nostro caso:
=data(stringa.estrai(b2;5;4);stringa.estrai(b2;3;2);stringa.estrai(b2;1;2))
La formula STRINGA.ESTRAI recupera dalla stringa specificata (primo argomento), partendo dal carattere richiesto (secondo argomento), un numero di caratteri (terzo argomento)
Ecco il risultato finale
Possiamo adesso copiare (usando incolla speciale) il risultato nella colonna Data di nascita (B) e assegnare il formato data.