Filtrer selon la présence d'un id dans une table
Bonjour à tous,
Le titre n'est peut-être pas clair... :
J'ai deux tables de faits, une de visites des commerciaux et une du chiffre d'affaires, les deux avec une relation sur la table client via l'IDClient.
Ce que j'aimerai faire c'est avoir un filtre (type booléen) sur les clients visités ou non visités.
En en premier temps ce que je peux faire c'est rajouter à ma table client une colonne "visité" dans laquelle je mets 1 si il y a une visite et 0 si il n'y en a pas.
Seulement avec cette méthode je ne pourrais pas filtrer avec mes filtres de rapports sur la date pour changer le 1 ou le 0 en fonction. (Par exemple si je filtre sur 2020 j'aurai les ventes de 2020 mais j'aimerai aussi n'avoir que les clients visités en 2020 et pas les autres années).
J'ai essayé avec des calculatetable/except/intersect mais le résultat me semble étrange et cela m'oblige à avoir une mesure pour les visités et une pour les non-visités alors qu'idéalement j'aimerai garder toutes mes mesures de CA déjà existantes et en obtenir des variantes qu'au travers du filtre visité 1/0.
Avez-vous une idée de la démarche ?
Je vous remercie
EDIT :
Un peu d'éléments pour vous montrer ce qui a déjà été fait en brouillon :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| Sell-out CA Clients visités =
VAR SMTD = CALCULATETABLE(VALUES(Table_Visites[IDClient]);DATESMTD(Calendrier[Date]))
VAR SYTD = CALCULATETABLE(values(Table_Visites[IDClient]);DATESYTD(Calendrier[Date]))
VAR SCAM = CALCULATETABLE(values(Table_Visites[IDClient]);DATESINPERIOD(Calendrier[Date];LASTDATE(Calendrier[Date]);-1;YEAR))
VAR SMTD1 = CALCULATETABLE(values(Table_Ventes[IDClient]);DATESMTD(Calendrier[Date]);Table_Ventes[Flux]=1)
VAR SYTD1 = CALCULATETABLE(values(Table_Ventes[IDClient]);DATESYTD(Calendrier[Date]);Table_Ventes[Flux]=1)
VAR SCAM1 = CALCULATETABLE(values(Table_Ventes[IDClient]);DATESINPERIOD(Calendrier[Date];LASTDATE(Calendrier[Date]);-1;YEAR);Table_Ventes[Flux]=1)
return
if(HASONEFILTER(ParamYTD[Temporalite]);
SWITCH(SELECTEDVALUE(ParamYTD[Temporalite]);"MTD";CALCULATE([Sell-out CA];INTERSECT(SMTD1;SMTD));"YTD";CALCULATE([Sell-out CA];INTERSECT(SYTD1;SYTD));"CAM";CALCULATE([Sell-out CA];INTERSECT(SCAM1;SCAM));BLANK();"")) |