Cartes et GPS Power Query

Code Postal dans Excel à partir de plusieurs sources

Temps de lecture 3 minutes

Cet article va vous expliquer comment créer un fichier code postal à partir de 2 sources de données, un fichier csv et une page web.

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.

Lien de telechargement pour le code postal

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

La vidéo suivante vous présente un exemple d'importation de fichier csv avec Power Query

Si vous êtes familier du traitement des requêtes Power Query, voici le script d'importation du fichier code postal

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"

Et nous obtenons le résultat suivant dans Excel

Liste des villes et code postal france

MAIS, le fichier est incomplet ❗❗❗ Il faut rajouter les départements et régions 😒😤

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.

Menu pour rajouter une requete dimportation depuis le web

Et là, il faut indiquer l'adresse de la page Wikipedia que nous voulons importer

Insertion de ladresse de la page de Wikipedia

Les étapes d'importations de cette page a été décrite dans l'article sur l'importation depuis le web.

Croiser les deux requêtes

A ce stade, nous avons 2 requêtes issue 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 est présent dans les 2 requêtes.

Colonnes communes entre les 2 requetes

Nous allons nous servir de cette information croiser les requêtes. Dans Power Query, on parle de fusionner les requêtes depuis le menu Accueil

Menu fusionner les requetes

Dans la boite 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.

Parametres de fusion entre les 2 requetes

Le résultat, c'est l'ajout d'une colonne qui contient chaque enregistrement correspondant à l'égalité.

Nouvelle colonne ajouter a la requete initiale

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

Selection des colonnes a retourner

Le résultat est le suivant dans Power Query

Resultat de la fusion entre les 2 sources

Après chargement dans Excel, on obtient le fichier des codes postaux suivant

Fichier de tous les code postal en France

Related posts

Créer une table des temps

Frédéric LE GUEN

Faire une RECHERCHEV avec Power Query

Frédéric LE GUEN

Exporter l’arborescence complète d’un répertoire

Frédéric LE GUEN

2 commentaires

Younes 07/07/2019 at 23:50

Merci pour le cour, sauf que la vidéo n'est pas accessible
merci

Répondre
Frédéric LE GUEN 08/07/2019 at 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

Répondre

Laissez un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.