Importer un fichier CSV est une opération qui s'est énormément simplifiée depuis l'apparition de Power Query. Nous Comment lier département et code postal à partir de deux sources de données ?
- Nous allons récupérer le fichier csv officiel des codes postaux français
- Puis nous allons l'associer à la page Wikipedia des départements et régions de France
Récupérer le fichier officiel des codes postaux
Aujourd'hui, de plus en plus de données publiques sont accessibles gratuitement sur des sites officiels. C'est le cas des codes postaux depuis l'adresse suivante.
- Vous pouvez télécharger gratuitement le fichier des codes postaux complet depuis notre espace boutique
Importer le fichier dans Excel
On ne le dira jamais assez ; ne double-cliquez JAMAIS sur un fichier csv pour l'ouvrir. Certes, c'est le moyen le plus rapide pour ouvrir le fichier mais ensuite, vous allez devoir retravailler le fichier pour le rendre exploitable. Et ça prend toujours beaucoup de temps.
C'est pour cela qu'aujourd'hui, la méthode d'importation d'un fichier csv (et pour toute importation d'ailleurs) c'est d'utiliser Power Query.
C'est quoi Power Query ?
Power Query est l'outil moderne d'importation et de transformation des données. Son utilisation est très simple et ne nécessite pas de connaissance avancée d'Excel ni de connaissance en programmation.
Si vous voulez vous former à l'utilisation de Power Query, je vous ai conçu cette formation sur Udemy très simple d'accès (la vidéo d'importation d'un fichier csv est gratuite)
Les étapes d'importation du fichier CSV
Afin de ne pas surcharger cet article, je vous écris le script d'importation du fichier csv des codes postaux dans Power Query. La technique est expliquée dans la formation (exporter un script).
let
Source = Csv.Document(File.Contents("\Downloads\laposte_hexasmal.csv"),[Delimiter=";", Columns=6, Encoding=65001, QuoteStyle=QuoteStyle.None]),
#"En-têtes promus" = Table.PromoteHeaders(Source, [PromoteAllScalars=true]),
#"Autres colonnes supprimées" = Table.SelectColumns(#"En-têtes promus",{"Code_postal", "Nom_commune", "coordonnees_gps"}),
#"Premiers caractères insérés" = Table.AddColumn(#"Autres colonnes supprimées", "Départements", each Text.Start([Code_postal], 2), type text),
#"Fractionner la colonne par délimiteur" = Table.SplitColumn(#"Premiers caractères insérés", "coordonnees_gps", Splitter.SplitTextByDelimiter(",", QuoteStyle.Csv), {"Latitude", "Langitude"}),
#"Colonnes permutées" = Table.ReorderColumns(#"Fractionner la colonne par délimiteur",{"Départements", "Code_postal", "Nom_commune", "Latitude", "Langitude"}),
#"Colonnes renommées" = Table.RenameColumns(#"Colonnes permutées",{{"Code_postal", "Code postal"}, {"Nom_commune", "Nom commune"}}),
#"Lignes triées" = Table.Sort(#"Colonnes renommées",{{"Départements", Order.Ascending}, {"Code postal", Order.Ascending}, {"Nom commune", Order.Ascending}}),
#"Doublons supprimés" = Table.Distinct(#"Lignes triées")
in
#"Doublons supprimés"
La seule chose à modifier, c'est le chemin d'accès à la première étape qui doit reprendre l'emplacement du fichier sur votre ordinateur. Et nous obtenons le résultat suivant dans Excel :
MAIS, le fichier est incomplet. Il faut rajouter Département et Région pour les lier au code postal.
Nouvelle requête depuis le web
Pour compléter le fichier, nous allons récupérer les informations manquantes depuis cette page de Wikipedia. Là encore, nous allons utiliser Power Query.
Mais ici, nous allons créer cette nouvelle requête dans le même classeur que celui qui contient déjà la requête d'importation du fichier csv. Nous aurons donc 2 requêtes dans le même classeur et ça c'est très important pour la suite.
Et là, il faut indiquer l'adresse de la page Wikipedia que nous voulons importer.
Les étapes d'importation de cette page ont été décrites dans l'article sur l'importation depuis le web.
Croiser les deux requêtes
A ce stade, nous avons 2 requêtes issues de 2 sources différentes ; le fichier csv et une page web. Maintenant, quand on regarde le résultat des 2 requêtes, on voit que nous avons le numéro du département présent dans les 2 requêtes.
Nous allons nous servir de cette information pour croiser les requêtes. Dans Power Query, on parle de fusionner les requêtes depuis le menu Accueil. Fusionner les requêtes, c'est un peu comme faire un RECHERCHEV avec Excel.
Dans la boîte de dialogue suivante, il suffit de sélectionner les 2 requêtes à fusionner ainsi que de sélectionner les colonnes communes entre ces requêtes.
Le résultat, c'est l'ajout d'une colonne qui contient chaque enregistrement correspondant à l'égalité.
En cliquant sur l'icône avec les 2 flèches, on affiche ainsi le nom des colonnes de la seconde requête. Il suffit de sélectionner les requêtes que nous voulons retourner.
Le résultat est le suivant dans Power Query :
Après chargement dans Excel, on obtient le fichier des codes postaux suivant :
Articles liés
- Créer un lien vers Google Maps depuis Excel
- Enrichir les données géographiques dans Excel
- Convertir adresses en coordonnées GPS
- Conversion Degré, Minute, Seconde en décimale
- Vous trouverez des informations complémentaires sur l'importation de données à partir de sources différentes sur le site de Microsoft.
Daniel Pomerleau
12/07/2022 @ 18:38
Bonjour, Y a t'il une base de données pour le Québec ?
Frédéric LE GUEN
22/07/2022 @ 21:56
Je suis preneur si vous en avez une
Greg
07/12/2021 @ 15:05
Cette vidéo est très bien merci infiniment !
Frédéric LE GUEN
09/12/2021 @ 11:11
Merci bcp
Younes
07/07/2019 @ 23:50
Merci pour le cour, sauf que la vidéo n'est pas accessible
merci
Frédéric LE GUEN
08/07/2019 @ 18:00
Merci pour ce message mais la vidéo n'est plus très pédagogique. Il faut que je la refasse mais je n'ai vraiment pas de temps pour m'y mettre