Format Ne pas résumer

Chercher les caractères avec la fonction DAX SEARCH

Pour extraire les données d’une chaîne de texte délimitée, il faut d’abord connaître la position du délimiteur. Dans ce scénario, il s’agit du caractère « ¤ » qui est dans la colonne ArticleSubstituer.

Aussi, dans cette seconde étape, il faut créer une nouvelle colonne, nommée ArticlePosFin, qui cherche le premier caractère « ¤ » dans la chaîne. Sa position correspond à la position de fin du nom de l’article dans ArticleSubstituer.

Cette nouvelle colonne sera utilisée dans l’exercice suivant pour extraire définitivement le nom de l’article.

En utilisant la même technique, adaptée à chaque situation, les colonnes MatierePosFin, TaillePosFin et PoidsPosFin seront créées. Il n’est pas nécessaire de créer une colonne de même type pour le marché car cette information est facile à trouver car c’est la dernière.

Pour vous aider, regarder la copie d’écran ci-dessous.

Déterminer les données intermédiaires
Déterminer les données intermédiaires

Pour faire l’exercice, vous avez uniquement besoin du rapport PBI_Lab42.pbix qui est téléchargeable.

Cet article fait partie d’une série de tutoriels sur Power BI :

  1. Créer une nouvelle colonne avec la fonction DAX SUBSTITUTE
  2. Déterminer les données intermédiaires avec la fonction DAX SEARCH
  3. Extraire les chaînes de caractères avec les fonctions DAX RIGHT, LEFT, MID, LEN
  4. Faire des jointures de tables de données avec DAX
  5. Mesurer des valeurs simples avec DAX
  6. Visualiser les mesures et colonnes DAX

Manipulations

Enregistrer son travail

Télécharger et ouvrir le fichier PBI_Lab42.pbix et l’enregistrer sous le nom PBI_Lab43.pbix.

Création de la colonne ArticlePosFin

Dans la table Articles, créer une nouvelle colonne qui se nommera ArticlePosFin.

Le résultat attendu est de calculer la position de fin du nom de l’article dans ArticlePosFin.

Ne pas résumer la colonne.

Utiliser la fonction SEARCH.

Pour vous aider, regarder la copie d’écran ci-dessous.

Colonne ArticlePosFin
Colonne ArticlePosFin
Solution

Dans la vue Données, faire un clic-droit sur la table Articles puis cliquer sur Nouvelle colonne.

Remplacer Colonne = par la formule suivante :

ArticlePosFin = SEARCH("¤",Articles[ArticleSubstituer],1,-1)

Appuyer sur la touche entrée du clavier.

Dans le ruban Outils de colonne, cliquer sur la liste déroulante de ∑.Résumé puis cliquer sur Ne pas résumer.

Pour vous aider, regarder la copie d’écran ci-dessous.

Format Ne pas résumer
Format Ne pas résumer
Explication de la formule
Supposons que ArticleSubstituer soit ‘Lamelles¤Zinc¤12cm¤6g¤Premium’.
La fonction SEARCH recherche le caractère « ¤ » dans la colonne ArticleSubstituer, à partir du caractère 1. Dans ce cas, ArticlePosFin vaut 9.
Si le caractère « ¤ » n’est pas trouvé, la fonction renvoie -1.

Fin de la solution.

Création de la colonne MatierePosFin

Dans la table Articles, créer une nouvelle colonne qui se nommera MatierePosFin.

Le résultat attendu est de calculer la position de fin du nom de la matière dans MatierePosFin.

Ne pas résumer la colonne.

Utiliser la fonction SEARCH et le résultat du calcul précédent.

Pour vous aider, regarder la copie d’écran ci-dessous.

Colonne MatierePosFin (extrait)
Colonne MatierePosFin (extrait)
Solution

Dans la vue Données, faire un clic-droit sur la table Articles puis cliquer sur Nouvelle colonne.

Remplacer Colonne = par la formule suivante :

MatierePosFin = SEARCH("¤", Articles[ArticleSubstituer], Articles[ArticlePosFin] + 1, -1)

Appuyer sur la touche entrée du clavier.

Dans le ruban Outils de colonne, cliquer sur la liste déroulante de ∑.Résumé puis cliquer sur Ne pas résumer.

Explication de la formule
Supposons que ArticleSubstituer soit ‘Lamelles¤Zinc¤12cm¤6g¤Premium’.
La fonction SEARCH recherche le caractère « ¤ » dans la colonne ArticleSubstituer, à partir de la valeur de ArticlePosFin + 1.
Comme ArticlePosFin vaut 9 (cf. résultat précédent), la recherche est faite à partir du caractère 10. Dans ce cas, MatierePosFin vaut 14.
Si le caractère « ¤ » n’est pas trouvé, la fonction renvoie -1.

Fin de la solution.

Création de la colonne TaillePosFin

Dans la table Articles, créer une nouvelle colonne qui se nommera TaillePosFin.

Le résultat attendu est de calculer la position de fin de la valeur de la taille dans TaillePosFin.

Ne pas résumer la colonne.

Utiliser la fonction SEARCH et le résultat du calcul précédent.

Pour vous aider, regarder la copie d’écran ci-dessous.

Colonne TaillePosFin (extrait)
Colonne TaillePosFin (extrait)
Solution

Dans la vue Données, faire un clic-droit sur la table Articles puis cliquer sur Nouvelle colonne.

Remplacer Colonne = par la formule suivante :

TaillePosFin = SEARCH("¤", Articles[ArticleSubstituer], Articles[MatierePosFin] + 1, -1)

Appuyer sur la touche entrée du clavier.

Dans le ruban Outils de colonne, cliquer sur la liste déroulante de ∑.Résumé puis cliquer sur Ne pas résumer.

Explication de la formule
Supposons que ArticleSubstituer soit ‘Lamelles¤Zinc¤12cm¤6g¤Premium’.
La fonction SEARCH recherche le caractère « ¤ » dans la colonne ArticleSubstituer, à partir de la valeur de MatierePosFin + 1.
Comme MatierePosFin vaut 14 (cf. résultat précédent), la recherche est faite à partir du caractère 15.
Dans ce cas, TaillePosFin vaut 19. Si le caractère « ¤ » n’est pas trouvé, la fonction renvoie -1.

Fin de la solution.

Création de la colonne PoidsPosFin

Dans la table Articles, créer une nouvelle colonne qui se nommera PoidsPosFin.

Le résultat attendu est de calculer la position de fin de la valeur du poids dans PoidsPosFin.

Ne pas résumer la colonne.

Utiliser la fonction SEARCH et le résultat du calcul précédent.

Pour vous aider, regarder la copie d’écran ci-dessous.

Colonne PoidsPosFin (extrait)
Colonne PoidsPosFin (extrait)
Solution

Dans la vue Données, faire un clic-droit sur la table Articles puis cliquer sur Nouvelle colonne.

Remplacer Colonne = par la formule suivante :

PoidsPosFin = SEARCH("¤", Articles[ArticleSubstituer], Articles[TaillePosFin] + 1, -1)

Appuyer sur la touche entrée du clavier.

Dans le ruban Outils de colonne, cliquer sur la liste déroulante de ∑.Résumé puis cliquer sur Ne pas résumer.

Explication de la formule
Supposons que ArticleSubstituer soit ‘Lamelles¤Zinc¤12cm¤6g¤Premium’.
La fonction SEARCH recherche le caractère « ¤ » dans la colonne ArticleSubstituer, à partir de la valeur de TaillePosFin + 1.
Comme TaillePosFin vaut 19 (cf. résultat précédent), la recherche est faite à partir du caractère 20. Dans ce cas, PoidsPosFin vaut 22.
Si le caractère « ¤ » n’est pas trouvé, la fonction renvoie -1.

Fin de la solution.

Enregistrement du fichier de travail Power BI Desktop

Enregistrer le fichier de travail Power BI Desktop.

Résumé

Vous avez appris à créer une colonne dans une table.

Pour ce faire, vous avez utilisé la fonction DAX SEARCH() pour chercher dans une chaîne de texte spécifique, le cavalier (ou pivot) qui était le caractère « ¤ ».

Cette fonction renvoie le numéro de la position du caractère.

Grâce aux différentes utilisations de cette fonction, vous avez pu séquencer la position de chaque élément de la colonne : Article, Matière, Taille, Poids et Marché.

Téléchargement de la solution

https://coudr.com/PBI_Lab43

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.