2017-08-24 4 views
2

J'ai regardé beaucoup de threads concernant COUNT et COUNTA, mais je n'arrive pas à comprendre comment l'utiliser correctement. Je suis nouveau à DAX et apprends mon chemin autour. J'ai essayé de regarder cela et j'ai obtenu un peu de chemin où je dois être mais pas exactement. Je pense que je suis confus sur la façon d'appliquer un filtre. Voici la situation: Quatre requêtes distinctes utilisées pour générer les données dans le rapport; mais seulement besoin d'utiliser deux pour la fonction DAX (Products et Display). J'ai trois colonnes que je dois filtrer, comme suit:Fonctions DAX COUNT/COUNTA

  • client (Display ou Products requête, peut faire non plus)
  • Marque (Products requête)
  • Localisation (Display requête)

Je souhaite compter les colonnes en fonction de si les données sont uniques. Voici un exemple:

  • client: Big Box Acheter;
  • Article: Lego Big Blocks;
  • Marque: Lego;
  • Emplacement: Jouets;

PAUSE

  • client: Big Box Acheter;
  • Article: Lego Star Wars;
  • Marque: Lego;
  • Emplacement: Jouets;

PAUSE

  • client: Big Box Acheter;
  • Article: Surface Pro;
  • Marque: Microsoft;
  • Localisation: Électronique;

PAUSE

  • Client: Little Shop sur le coin;
  • Article: Red Bicycle;
  • Marque: Trek;
  • Emplacement: Racks;

Dans cet exemple, quel que soit le fait que les éléments sont différents, nous voulons uniquement regarder le client, la marque et l'emplacement. Nous voyons dans les deux premiers enregistrements, le client est "Big Box Buy" et la marque est "Lego" et l'emplacement est "Toys". Cela apparaît deux fois, mais je veux le compter comme "1". Le prochain magasin "Big Box Buy" a la marque "Microsoft" et l'emplacement est "Electronics". Il apparaît une fois et une seule fois, et donc le compte distinct est "1" de toute façon. Cela signifie qu'il y a deux entrées distinctes pour "Big Box Buy", les deux avec un compte de 1. Et enfin il y a "Little Shop on the Corner" qui n'apparaît qu'une seule fois et ne compte qu'une seule fois. Le «squelette» du code que j'ai est essentiellement juste pour voir si je peux obtenir un compte pour travailler du tout, ce que je peux. C'est le FILTER que je pense est le problème (non utilisé dans l'exemple ci-dessous) à en juger par d'autres discussions que j'ai lues.

TotalDisplays = CALCULATE(COUNTA(products[Brand])) 

Évidemment, je ne peux pas simplement compter le nombre de fois qu'une marque apparaît comme cela me donnerait des doublons. J'ai besoin unique basé sur si les conditions suivantes sont remplies: Client doit être le même marque doit être le même emplacement doit être le même

Si oui, nous comptons distinctement comme un.

Je sais que je me suis un peu déconcerté et que j'ai l'air d'avoir tourné en rond, mais j'essayais de comprendre comment l'expliquer. S'il vous plaît laissez-moi savoir si je dois modifier ce post ou poster des précisions.

Un grand merci d'avance pour mon voyage avec DAX!

Répondre

0

Je crois avoir la réponse. J'ai utilisé un NATURALINNERJOIN dans DAX pour créer une nouvelle table fusionnée car j'avais besoin de référencer toutes les valeurs dans la même requête (je ne pouvais pas comprendre comment faire autrement). J'ai également créé une colonne calculée "identité unique" qui combinait des données provenant de plusieurs lignes, mais était cachée en coulisses (pas réellement affichée sur le rapport) afin que je puisse ensuite prendre une mesure des valeurs uniques de cette façon.

TotalDisplays = COUNTROWS(DISTINCT('GD-DP-Merge'[DisplayCountCalcCol])) 

Ma colonne calculée est la suivante:

DisplayCountCalcCol = 'GD-DP-Merge'[CustID] & 'GD-DP-Merge'[Brand] & 'GD-DP-Merge'[Location] & 'GD-DP-Merge'[Order#] 

Ainsi, la mesure TotalDisplays rapporte maintenant de retour le nombre distinct de lignes en fonction de la valeur unique de l'ID client, la marque, et l'emplacement l'article. J'ai également jeté un numéro de commande au cas où.

Merci!