Exploiter des données peu structurées
Scénario
C’est un exemple malheureusement d’actualité, puisqu’il s’agit des données de propagation du nouveau coronavirus (n’y voyez pas là d’intention macabre, c’est juste que je travaille sur un tableau de suivi de la progression du virus).
Les données sont récupérées dans un fichier texte dont voici les premières lignes :
Les champs vont par trois : le pays / le nombre de cas confirmés / le nombre de décès. Mais nous voyons tout de suite le problème pour exploiter ces données : au lieu d’être réparties sur trois colonnes, elles sont « aplaties » sur une seule. Il va donc falloir faire jouer Power Query et remettre ces données dans un format utilisable.
Il y a au moins deux façons de faire : une pincée de M ou l’interface utilisateur. J’ai choisi la seconde option, en me servant de la fonction MODULO, de colonnes conditionnelles, et de filtres.
Intégration des données « aplaties »
L’aperçu confirme la première impression, il va falloir transformer les données :
Pour commencer, j’ai ajouté une colonne d’index :
Comme je le disais plus haut, les lignes vont par trois : il doit donc être possible d’identifier les lignes contenant les pays, les cas confirmés, et les décès, et d’une manière ou d’une autre, les séparer.
La fonction magique, ici, c’est MODULO. Elle se cache dans l’onglet Ajouter une colonne, menu Standard :
La colonne Index étant sélectionnée, je vais indiquer la valeur du modulo, à savoir 3, pour insérer une nouvelle colonne :
Chaque ligne mentionnant un pays est marquée « 1 », les cas confirmés, « 2 », et les décès « 0 ».
La suite des opérations consiste à ajouter des colonnes conditionnelles et à filtrer. Commençons par les pays : je vais créer une colonne « Pays » qui contient le nom du pays si la colonne Modulo est égale à 1 :
Il faut ensuite que je répète cette valeur sur chaque ligne (onglet Transformer, puis Remplir vers le bas), pour avoir le pays « en face » des cas confirmés :
Je peux maintenant filtrer les lignes où Modulo est égal à 1 :
Et je répète l’opération pour Modulo égal 2, à savoir ajout de la colonne conditionnelle, remplir vers le bas, filtrer les lignes où Modulo égal 2 :
Il ne me reste qu’à supprimer les colonnes Index et Modulo, affecter le bon type (Texte, Entier) et renommer la dernière colonne « Décès ». Le tour est joué (par le clic-droit, il est possible de déplacer la colonne à la fin) :