Formater un élément avec un nombre fixe de caractères

Lors de la mise en place d’un modèle de données, la problématique du format des données est un élément particulièrement important pour assurer une correspondance parfaite entre les différentes tables de données.

Il arrive régulièrement que les sources puissent être formatées différemment en fonction du logiciel d’extraction. Le cas typique qui parlera probablement à la plupart d’entre vous sera celui des matricules, d’un code fournisseur ou encore d’un département. L’un de vos logiciels vous ressort par exemple le matricule « 123456 » tandis que votre second logiciel vous ressort « 00123456 ». Dès lors, lorsque vous chercherez à associer vos deux tables, la correspondance ne se fera pas selon vos souhaits.

Mais comment faire alors ? Nous allons aborder deux solutions.

 

Solution 1 : Vérifier le format de la colonne

En effet, Power BI a tendance à vouloir vous aider. Mais parfois, il est nécessaire de corriger ce que le logiciel a fait de lui-même afin de mieux correspondre à notre besoin. Ainsi, si vos matricules ou codes ne contiennent que des éléments numériques, Power BI aura probablement classé la colonne avec un type « Entier ». Revenez sur l’étape d’attribution des types à chaque colonne pour modifier le type « Entier » en type « Texte ». Selon la source, vous retrouverez probablement les « 0 » attendus pour obtenir un nombre fixe de caractères.

Figure 1. Modification par le changement du type de données

Si cela n’est pas suffisant, il faudra vous intéresser à la solution suivante.

Figure 2. Exemple de colonne à modifier – numéro des départements français

Solution 2 : Utilisation de la fonction « PadStart » du langage M

On constate sur la figure précédente que malgré nos efforts de mettre la colonne « CODE_DEPT » au format texte, il nous manque toujours les « 0 » devant les premiers chiffres. Pour corriger cela, nous allons utiliser un peu de code M (voir Figure 3).

Figure 3. Code à utiliser pour forcer un nombre de caractère

La fonction Text.PadStart prend en entrées : la colonne contenant le texte à modifier, le nombre de caractères souhaités et le caractère à utiliser pour compléter en cas de besoin. Ainsi dans l’exemple de la Figure 3, nous cherchons à modifier les éléments de la colonne [CODE_DEPT], de sorte à avoir à chaque fois 2 caractères, en utilisant le « 0 » en cas de besoin. Le résultat obtenu à la suite de cette étape est proposé sur la Figure 4

Figure 4. Résultat de la correction

Si vous ne vous sentez pas en mesure de taper la ligne de code dans son ensemble, concentrez-vous sur la partie encadrée. Vous n’aurez qu’à retenir ce morceau et l’intégrer à une ligne obtenue avec le bouton « Remplacer les valeurs » (cf Figure 5).

Figure 5. Accès à la fenêtre de remplacement des valeurs.

Le « truc » sera de cliquer directement sur « OK » dans la fenêtre résultant de cette action (cf Figure 6).

Figure 6. Fenêtre de remplacement de valeur

Vous obtiendrez ainsi la ligne de code de la Figure 7 qui n’aura aucun effet mais vous donnera la structure pour appliquer la modification souhaitée.

Figure 7. Ligne de code avant modification

Voilà qui devrait vous permettre de corriger l’un des problèmes couramment rencontrés. Et si vous n’y arrivez pas, ne vous tracassez pas et n’hésitez pas à contacter notre joyeuse équipe de développeurs qui pourront vous accompagner ou réaliser vos développements.