Fermer

août 24, 2022

Ajout d’une colonne de classement pré-calculé dans Power BI

Ajout d’une colonne de classement pré-calculé dans Power BI


Tout d’abord, pour commencer, qu’est-ce que la fonction Rank dans Power BI ?

Ainsi, la fonction Rank de Power BI renvoie l’ordre de classement en fonction de l’ordre spécifié. La commande Classer la colonne ajoute une nouvelle colonne à un tableau, le classement étant déterminé par une ou plusieurs autres colonnes du tableau. Pour spécifier comment les liens doivent être traités, utilisez l’option Méthode de classement.

Ensuite, une brève information sur la façon d’intégrer Rank dans PowerQuery et PowerBI:

Nous pouvons ajouter un RANG colonne à notre table de différentes manières, y compris dynamiquement dans le rapport Power BI à l’aide de mesures DAX ou précalculées. Si nous effectuons un classement pré-calculé (par exemple, pour une table agrégée ou quelque chose de similaire), il serait peut-être préférable de le faire dans Power Query afin que nous puissions l’utiliser plus tard. Dans cet article, je vais vous expliquer comment créer une colonne RANK dans Power Query.

Maintenant, la prochaine question qui se pose peut être, pourquoi utilisons-nous Rank dans Power Query au lieu des mesures DAX ?

Lors du calcul du rang, la première question qu’il faut se poser « Quand et où dois-je le créer ? » S’agira-t-il d’un calcul de classement dynamique basé sur la sélection de segments du rapport ou voulons-nous un classement statique ? Par exemple, nous pourrions vouloir calculer le classement d’un client en fonction des dates sélectionnées dans le segment (qui peuvent être modifiées par l’utilisateur du rapport). Dans ce cas, le classement doit être calculé comme une mesure DAX en utilisant RANGX fonction dans Power BI. Cette méthode générera une sortie dynamique basée sur les sélections de l’utilisateur dans les segments et le rapport.

Bien que le calcul dynamique du classement soit souvent utile, il n’est pas rare d’exiger un classement sur une base précalculée. Supposons que nous souhaitions créer un tableau agrégé basé sur les clients et l’année et que nous souhaitions classer les clients dans ce tableau en fonction du montant de leurs ventes. La période et les autres variables resteront constantes. Dans ce cas, le calcul du rang peut être effectué comme un pré-calcul. Ce tableau agrégé pré-calculé peut améliorer considérablement les performances de notre rapport. Lorsque vous effectuez cette opération en tant que pré-calcul, Power Query est une bonne option. Parce que vous pouvez le faire dans un Dataflow, puis utiliser le résultat dans plusieurs jeux de données Power BI.

Maintenant, nous allons voir comment ajouter une colonne Rank dans Power Query en utilisant Table.AddRankColumn

Exemple de données pour référence :

Image1

L’ajout de la colonne de classement dans Power Query n’a pas encore été ajouté à l’interface graphique de l’éditeur Power Query dans Power BI. Cela signifie que nous devrions utiliser la fonction jusque-là. La fonction que nous allons utiliser est Table.AddRankColumn. C’est une fonction très simple avec quatre paramètres dont un paramètre est facultatif. Ci-dessous la syntaxe de la fonction rank :

Table.AddRankColumn(

,

,

,

[<rank_method>}

)

Four Parameters of function:

The 4 parameters are explained as follows:

table’ refers to the table name of the table in which we want to add rank column,

new_column_name’ refers to the title of rank column,

comparison_criteria’ refers to the conditions that govern how ranking should be computed,

rank_method’ is an optional parameter, it refers to which ranking method should be used

Let’s look further the process of how to add pre-calculated rank column to a table:

The method described in this article makes use of Power Query, so we must be in the Power Query Editor. Power Query Editor can be accessed from the Power BI Desktop by selecting Transform Data.

Image2

After opening Power Query editor, in the ‘Applied steps’ column on right side, right click on last step and click on ‘Insert Step After’, this will result in the creation of a new step with no transformation.

Image3

We can now use the Formula bar to apply any transformation that we want.

Image4

The name of the table from the previous step is represented by #”Changed Type” in the above formula. This is the name of the table that we can pass as the first parameter. As a result, the formula could look like this:

= Table.AddRankColumn(#”Changed Type”, “Rank”,{“Sales”})

To use the Table.AddRankColumn function, we must have at least three parameters. The table name (from the previous step), the new column name “Rank” and the columns and conditions that will be used to calculate the ranking. In this example, we simply said “Sales” column for ranking, with no order specified, implying that values are sorted ascending by default. The result will be as follows:

Image5

Ranking condition:

We can change the order by adding the condition still in the third parameter of the function using Order.Descending.

= Table.AddRankColumn(#”Changed Type”,”Rank”,{“Sales”,Order.Descending})

Image6

Suppose we want to do the ranking based on two columns, then the expression will be as below:

= Table.AddRankColumn(#”Changed Type”,”Rank”,{{“Sales”,Order.Descending},{“Customer”}})

Image7

Ranking Methods:

A ranking method establishes the strategy in which ties are handled by the ranking algorithm. There are 3 ranking methods:

  • Standard competition: This is the rank type that is used by default. This means that if there is a tie, the items in the tie will have the same rank as the items after them, and the items after that will have the rank starting after the collection of tie numbers in that table. In short, items that compare equally receive the same ranking number, leaving a gap in the rankings. For instance, ranking sequence will be 1224. Expression for this is as below:

= Table.AddRankColumn(#”Changed Type”,”Rank”,{“Sales”,Order.Descending},[RankKind=RankKind.Competition])

Image8

  • Dense: les éléments qui se comparent de manière égale reçoivent le même numéro de classement et les éléments suivants reçoivent le numéro de classement immédiatement suivant. Par exemple, 1223. L’expression pour cela est la suivante :

= Table.AddRankColumn(# »Type modifié », « Rang »,{« Sales »,Order.Descending},[RankKind=RankKind.Dense])

Image9

  • Ordinal: Il s’agit du classement qui calculerait le classement en fonction de la condition que vous avez déterminée, mais s’il y a une égalité, il donnera le rang le plus élevé à l’enregistrement qui se positionne en premier dans l’ordre d’origine des lignes du tableau. Par exemple, 1234. L’expression pour cela est la suivante :

= Table.AddRankColumn(# »Type modifié », « Rang »,{« Sales »,Order.Descending},[RankKind=RankKind.Ordinal])

Image10

Conclusion:

Il existe deux façons de classer les données dans Power BI : dynamique et statique (ou précalculée). Si vous voulez un classement dynamique, les mesures DAX peuvent être la meilleure option pour cela. Vous pouvez utiliser des fonctions telles que RANKX pour un classement dynamique. Toutefois, si vous effectuez un classement dans un tableau pré-agrégé, le classement avec Power Query peut être utile, comme expliqué dans cet article.






Source link