In een voorgaande blog legde ik uit hoe je een kolom kunt sorteren op basis van een andere kolom. Dit doe je met de ‘sort by column’ functionaliteit in Power BI. Wanneer je dit doet kan het echter voorkomen dat bepaalde DAX measures niet meer werken zoals je zou verwachten. Aan de hand van een voorbeeld vertel ik je over de bijwerking van sort by column functionaliteit. Vervolgens leg ik je uit hoe je hier rekening mee kunt houden.

Introductie voorbeeld

Ik heb een data model met daarin een kolom genaamd ‘category’. Deze bevat de namen van de verschillende product categorieen die verkocht worden. In dit voorbeeld sorteerd de kolom ‘Category Code’ de kolom ‘Category’.

Nu moet er een visual opgeleverd worden met daarin de sales per categorie en vervolgens ook het percentage van het totaal per categorie.

De sales per categorie is vrij simpel en ziet er als volgt uit:

Het probleem

We maken gebruik van een simpele DAX formule om het percentage van het totaal per categorie uit te rekenen:

class="wp-image-37248

Met de CALCULATE() functie berekenen we het totaal. Deze is nodig om het percentage uit te rekenen. Met de CALCULATE() functie wordt het filter op categorie overruled. Zo kun je de sales per categorie delen door het totaal van alle categorieen.

Dit levert echter de volgende visual op:

class="wp-image-37251

Elke categorie laat 100% zien doordat het daadwerkelijke sales totaal niet is gevonden door onze DAX measure. Iedere categorie deelt nu door de sales van diezelfde categorie, wat dus 100% oplevert. Dit is een bijwerking van de sort by column functionaliteit. Doordat er in deze filter context zich, naast categorie, nog een verborgen filter bevind: Category Code. Op het moment dat je een kolom laat sorteren door een andere kolom wordt deze ook toegevoegd aan iedere filter context waar de originele kolom zich in bevind. Als je dus het filter van de originele kolom wilt aanpassen zul je de kolom die je gebruikt om te sorteren niet uit het oog mogen verliezen..

Een simpele aanpassen van de DAX measure levert wel het gewenste resultaat op. Door Category Code toe te voegen aan de ALL() functie wordt ook op deze kolom het filter opgeheven. Hieronder kun je de DAX measure vinden en zie je dat de percentages nu wel goed uitgerekend worden.

class="wp-image-37250
class="wp-image-37246

Conclusion

Aan de hand van dit blog heb ik je uitgelegd wat een bijwerking is van de sort by column functionaliteit in Power BI. Als je onthoudt dat dit direct ook een verborgen kolom kan toevoegen aan de filter context van je visuals loop je niet meer tegen vervelende verrassingen aan.
Mocht je geintereseerd zijn in onze andere blogs dan kun je die hier vinden.