J'ai un problème en essayant de compter les lignes dans une table Power BI où le critère varie en fonction d'un paramètre What-If. La table compte environ 11 millions de lignes, mais je vais essayer de donner un exemple simple de ce que j'essaie de faire. Pardonnez la longueur du message, mais il n'y en a pas vraiment beaucoup.Power BI compte les instances d'enregistrements qui correspondent aux critères basés sur le paramètre What-If
Les données au fur et à partir de SQL Server ressemble à quelque chose comme ceci (simplifié pour plus de clarté)
Item Category Price AvgCatPrice Variance
Dog Pet 20.00 15.00 33.33
Cat Pet 12.00 15.00 20.00
Goat Pet 18.00 15.00 20.00
Maggot Pet 05.00 15.00 66.67
Apple Fruit 01.00 01.20 16.67
Orange Fruit 01.20 01.20 00.00
Mango Fruit 01.30 01.20 08.33
L'écart est tout simplement la différence absolue entre le prix et la moyenne de la catégorie en pourcentage, mais ce n'est pas pertinent à la question
Donc je charge les données dans Power Bi et tout ressemble à ce qui précède. Puis, j'ajoute une colonne calculée simple comme suit: Count =1
Si je mets ces valeurs sur une table avec Category
sous forme de lignes et Count
comme valeurs je reçois
Category Count
Fruit 3
Pet 4
Ceci est comme prévu.
J'ai ensuite ajouté un paramètre what-if appelé VarPc comme un nombre décimal compris entre 0 et 100 avec des incréments de 5. J'ai pris l'option d'ajouter automatiquement un slicer pour le paramètre.
Puis j'ajoute une nouvelle colonne comme ceci.
OverVarPc = IF(SOTestDat[Variance] > VarPc[VarPc Value],1,0)
Si je l'ajouter à la table je reçois
Category Count OverVarPc
Fruit 3 2
Pet 4 4
..which est correct en supposant que VarPc est égal à zéro.
Maintenant le premier numéro Si j'ajuste le paramètre via le curseur ou la zone de saisie, la colonne OverVarPc n'est pas réévaluée.
Prochaine approche J'ai ajouté une seconde table, cette fois tous les détails sont affichés (pas d'agrégation délibérée). J'ai ensuite ajouté une nouvelle mesure à la table VarPc
appelée SumIfGt
avec ce que la définition
SumIFGt = IF((sum(SOTestDat[Variance]) - sum(VarPc[VarPc])) >0,1,0)
Le tableau ressemble à ceci avec le curseur à 0%
Item Price Variance Count OverVarPc SumIFGt
Apple 1 16.67 1 1 1
Cat 12 20 1 1 1
Dog 20 33.33 1 1 1
Goat 18 20 1 1 1
Maggot 5 66.67 1 1 1
Mango 1.3 8.33 1 1 1
Orange 1.2 0 1 0 0
Si je l'ai mis à 25% alors la table ressemble maintenant à ceci.
Item Price Variance Count OverVarPc SumIFGt
Apple 1 16.67 1 1 0
Cat 12 20 1 1 0
Dog 20 33.33 1 1 1
Goat 18 20 1 1 0
Maggot 5 66.67 1 1 1
Mango 1.3 8.33 1 1 0
Orange 1.2 0 1 0 0
Les deux résultats sont comme prévu.
Voici donc moi pense que je suis bon pour aller .... prochain numéro Je laisse tomber cette nouvelle mesure sur mon tableau d'origine agrégée, mais le tableau montre maintenant.
Category Count SumIfGt
Fruit 3 0
Pet 4 1
je sorte de comprendre pourquoi il le fait, il est l'agrégation SUM
de Variance
et (pour les fruits) obtenir 75, puis l'agrégation VarPc
pour chaque ligne (3 lignes x 25) = 75 puis retour 0 comme ce n'est pas plus grand que.
Enfin la question! Comment puis-je obtenir un compte simple des résultats de la mesure. Ce que je veux voir dans le tableau final, c'est la catégorie, le total des éléments de la catégorie et le nombre d'items dont la variance est supérieure au paramètre What-IF.
Il y a beaucoup plus de choses que je veux faire mais je pense que si je me fais craquer le reste suivra facilement.
Merci d'avoir lu jusqu'ici!
Merci mendosi, je pense que je comprends où je me trompais maintenant et plus important encore, pourquoi! Merci pour ton aide. –