Format Ne pas résumer

SEARCH Power BI

par

dans

Vous allez découvrir comment utiliser la fonction DAX SEARCH Power BI afin de chercher un caractère dans une chaine de caractères.

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. Par ailleurs, 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.

Enfin, 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.

SEARCH Power BI : déterminer les données intermédiaires
SEARCH Power BI : déterminer les données intermédiaires

Par ailleurs, 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 de formation sur les fonctions DAX Power BI :

  1. SUBSTITUTE Power BI
  2. SEARCH Power BI
  3. LEFT Power BI, RIGHT, MID, LEN
  4. Jointure en DAX
  5. Mesure DAX simple
  6. Visualiser une mesure DAX

Gardez à l’esprit que l’interface a pu évoluer fortement depuis que cet article a été rédigé

Enregistrer son travail

Premièrement, 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 avec la fonction SEARCH Power BI

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

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

La colonne ArticleSubstituer contient la chaîne de caractère à analyser. Par ailleurs, c’est le caractère « ¤ » qui délimite les données.

Ensuite, ne pas résumer la colonne.

Enfin utiliser la fonction SEARCH.

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

SEARCH Power BI : Colonne ArticlePosFin
SEARCH Power BI : Colonne ArticlePosFin

Solution

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

Puis remplacer Colonne = par la formule suivante :

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

Ensuite, 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 avec la fonction SEARCH Power BI

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

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

Ensuite ne pas résumer la colonne.

Enfin, utiliser la fonction SEARCH et le résultat du calcul précédent.

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

SEARCH Power BI : Colonne MatierePosFin
SEARCH Power BI : Colonne MatierePosFin

Solution

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

Puis remplacer Colonne = par la formule suivante :

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

Ensuite, appuyer sur la touche entrée du clavier.

Enfin, 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 avec la fonction SEARCH Power BI

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.

Ensuite ne pas résumer la colonne.

Enfin, utiliser la fonction SEARCH et le résultat du calcul précédent.

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

SEARCH Power BI : Colonne TaillePosFin
SEARCH Power BI : Colonne TaillePosFin

Solution

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

Puis remplacer Colonne = par la formule suivante :

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

Ensuite, appuyer sur la touche entrée du clavier.

Enfin, 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 avec la fonction SEARCH Power BI

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.

Ensuite ne pas résumer la colonne.

Enfin, utiliser la fonction SEARCH et le résultat du calcul précédent.

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

SEARCH Power BI : Colonne PoidsPosFin
SEARCH Power BI : Colonne PoidsPosFin

Solution

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

Puis remplacer Colonne = par la formule suivante :

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

Ensuite, appuyer sur la touche entrée du clavier.

Enfin, 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.

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

Pour aller plus loin

Téléchargez gratuitement en PDF mon support de cours pour apprendre à créer des rapports avec Power BI Desktop. Il comprend l’exposé des notions (185 pages) et plus de 50 travaux pratiques corrigés de Power BI.

Commentaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *