alors voici ce que j'ai réalisé
j'ai créé un calendrier
puis une table

j'ai créé les Id pour identifié les mutations (car les entrées et sorties seront identifiés)
ID = Feuil1[Employé ID]&"-"&Feuil1[Date de fin]
ID-1 = Feuil1[Employé ID]&"-"&Feuil1[date de début]-1
les tags mutation :
tag mutation = IF(LOOKUPVALUE(Feuil1[Orga],Feuil1[ID],Feuil1[ID-1])="","",if(LOOKUPVALUE(Feuil1[Orga],Feuil1[ID],Feuil1[ID-1])<>Feuil1[Orga],"Mutation",""))
tag mutation-1 = IF(LOOKUPVALUE(Feuil1[Orga],Feuil1[ID-1],Feuil1[ID])="","",if(LOOKUPVALUE(Feuil1[Orga],Feuil1[ID-1],Feuil1[ID])<>Feuil1[Orga],"Mutation",""))
et ensuite les mesures :
Count Tag Mutation = COUNTROWS(Feuil1)
1 2 3 4 5
| Effectif Début =
VAR MaxDate = MAX('Calendar'[Date])
VAR MinDate = MIN('Calendar'[Date])
RETURN
CALCULATE([Count Tag Mutation],FILTER(Feuil1,Feuil1[date de début]<=MinDate && Feuil1[Date de fin]>=MinDate))-[Effectif Mutation out]-[Effectif Mutation In] |
1 2 3 4 5 6
| Effectif Fin =
VAR MaxDate = MAX('Calendar'[Date])
VAR MinDate = MIN('Calendar'[Date])
RETURN
CALCULATE([Count Tag Mutation],FILTER(Feuil1,Feuil1[date de début]<=MaxDate && Feuil1[Date de fin]>=MaxDate)
) |
1 2 3 4 5 6
| Effectif Mutation In =
VAR MaxDate = MAX('Calendar'[Date])
VAR MinDate = MIN('Calendar'[Date])
RETURN
CALCULATE([Count Tag Mutation],FILTER(Feuil1,Feuil1[date de début]>=MinDate && Feuil1[Date de fin]<=MaxDate && Feuil1[tag mutation]="Mutation")
) |
1 2 3 4 5 6
| Effectif Mutation out =
VAR MaxDate = MAXX('Calendar',DATEADD('Calendar'[Date],-1,MONTH))
VAR MinDate = MINX('Calendar',DATEADD('Calendar'[Date],-1,MONTH))
RETURN
-CALCULATE([Count Tag Mutation],FILTER(Feuil1,Feuil1[date de début]>=MinDate && Feuil1[Date de fin]<=MaxDate && Feuil1[tag mutation-1]="Mutation")
) |
pour avoir ce résultat :

Nicolas, est ce qu'il peut y avoir plus simple ou plus optimiser ? merci en tout cas pour ton aide
Partager