Come utilizzare l’elenco Istat dei codici comuni

Se intendiamo effettuare analisi a livello territoriale, spesso è necessario aggregare i dati a livello di regione o di ripartizione geografica. A tal fine occorre una tabella con l’elenco dei comuni e delle regioni con relativa ripartizione geografica.

Dove scaricare il file

Il sito dell’Istat fornisce gratuitamente l’elenco dei codici comuni, città metropolitane, province, regioni. Dal 1° luglio 2016 esistono due link dai quali è possibile effettuare il download del file in due diversi formati: csv xls. A quanto si legge, dovrebbero essere permalink. Nutro qualche dubbio in merito, perché il nome del file csv/xls contiene la data. E’ presumibile che al prossimo aggiornamento tale data sarà modificata, dunque il permalink potrebbe non essere così “perma”. Ma non è su questo che intendo soffermarmi.

Il problema

Il file sarebbe la soluzione alla nostra esigenza iniziale, perché contiene i dati necessari. Tuttavia, nel suo tracciato ho riscontrato alcuni problemi (presenti nel file scaricato alla data di pubblicazione del post).

Analizziamo le prime colonne.

Se siamo pratici dei codici, sappiamo che il Codice Regione è a 3 cifre, così come il Codice Provincia  e il Progressivo del Comune; il Codice Comune, concatenazione di Codice Provincia e Progressivo del Comune, è a 6 cifre. Nelle colonne in evidenza, tuttavia, gli zeri iniziali si sono persi. Il problema non dipende dal fatto di avere aperto il file in Microsoft Excel (a conferma, è sufficiente aprire il file csv con il Blocco Note: gli zeri mancano fin dall’origine). Tutto dipende dal flusso di esportazione: se non è specificato come gestire campi testo che potrebbero apparire numerici (un valore come 004 potrebbe anche essere semplicemente 4), in output i dati diventano numerici e perdono gli zeri iniziali. Quante volte abbiamo riscontrato questo problema leggendo file che contengono numeri di telefono privi dello zero iniziale? o in cui il cap di Roma 00165 è diventato 165?

Leggiamo con attenzione la legenda (presente nel file in formato xls):

Come si può vedere dal testo evidenziato, si parla sempre di tre/sei caratteri alfanumerici, ossia in cui gli zeri iniziali hanno significato. Purtroppo, il tracciato del file che abbiamo scaricato non è così.

La soluzione

Per utilizzare correttamente i dati scaricati, pertanto, occorre provvedere a una semplice operazione di ETL, che consenta di aggiungere gli zeri iniziali solo ove necessario. Infatti, i nuovi comuni della Sardegna, per esempio, hanno codici provincia già a 3 cifre che iniziano con 1, perciò non presentano il problema, almeno in questo campo.

Le soluzioni sono molte. Propongo qui l’utilizzo della funzione Destra, che esemplifico in Microsoft Excel relativamente alla colonna Codice Regione. La medesima logica può naturalmente essere implementata in qualunque altro ambiente (Microsoft Access, Microsoft SQL Server, Oracle ecc.).

Concateno tre zeri e l’attuale valore di Codice Regione; alla stringa che risulta applico la funzione Destra e prendo i primi 3 caratteri. La funzione Destra restituisce una stringa, perciò non perdo gli zeri che ho concatenato all’inizio.

Ripetendo l’operazione anche per le altre colonne interessate, sarà possibile ottenere correttamente il Codice Istat del comune alfanumerico a 6 cifre.