Suddividere una colonna di file csv

Come suddividere una colonna di file csv in base al contenuto

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 😊

Riferimenti utili

Ultima modifica 25/06/2022: Update index.md (9a091e7)