Suddividere una colonna di file csv
A cura di
Gianni Vitrano
| issue
#219
| guida/e
Andrea Borruso
Come si può suddividere velocemente in più colonne una colonna che in ogni cella, il più delle volte ha un elenco puntato?
Esempio:
Obbiettivo: Ottenere N colonne dalla colonna X
Criterio A | Criterio B | Criterio C | Criterio D | Criterio E | Criterio F | Criterio G |
---|---|---|---|---|---|---|
età e/o dimensioni | forma e portamento | valore ecologico | ||||
età e/o dimensioni | rarità botanica | |||||
età e/o dimensioni | ||||||
età e/o dimensioni | valore ecologico | |||||
età e/o dimensioni | ||||||
età e/o dimensioni |
Usare il classico Split o Converti il testo in colonne rende il tutto molto complicato e non sempre il risultato finale è garantito
Soluzione 1 Visidata
Utilizzando Visidata e le espressioni regolari, esempio di regex si ricavano le nuove colonne in pochi istanti.
Basta aprire il file, spostarsi sulla colonna da splittare pigiare i tasti shift + . in modo da ottenere il comando :
ed inserire la stringa regex [a-z]\)
e pigare invio
Come per magia in pochi istanti la nostra colonna, e il suo contenuto, viene suddivisa in N colonne
In questo caso Visidata ho usato come separatore per le colonne la regola [a-z]\)
, ovvero, ho usato i simboli dalla a alla z che sono seguiti dal simbolo )
Domanda: Se non so usare Visidata e le regex, c'è un altra soluzione? Risposta: Impara ad utilizzarli, ti rendono la vita più semplice… 😊
Soluzione 2 EmEditor
Per chi è poco pratico di Visidata e regex può usare EmEditor un ottimo strumento per manipolare file csv e non solo.
Apriamo il file con EmEditor, il contenuto della nostra colonna è un po’ sporco, l’elenco puntato non sempre è scritto tutto nello stesso modo, troviamo:
- a) oppure a )
- b) oppure b )
- c) oppure c )
- d) oppure d )
- e) oppure e )
- f) oppure f )
- g) oppure g )
Come prima cosa dobbiamo sostititure questi elenchi con un simbolo univoco
Con una semplice operazione batch di cerca e sosttituisci sostituiamo tutti i simboli degli elenchi con il simbolo + (o altro simbolo)
Adesso basta selezionare la colonna che si vuole suddividere e pigiare il tasto destro del mouse e selezionre Dividi colonne
Si aprirà un popup che permette di selezionare diverse opzioni e il separatore da utilizzare
Adesso non resta che pigiare invio e anche EmEditor aggiungerà le varie colonne 😊
Ps: Anche in EmEditor si possono usare le regex, ma non sono riuscito ad usarle per definire il separatore 😊