Forum Discussion
Calculate difference between date group by columns
- Anonymous2 years ago
Hi Juju123
You can refer to the following solution.
1.Create a num measure to extract the num from operation code.
No = INT ( MID ( SELECTEDVALUE ( Table1[Operation code] ), SEARCH ( "E", SELECTEDVALUE ( Table1[Operation code] ),, BLANK () ) + 1, LEN ( SELECTEDVALUE ( Table1[Operation code] ) ) - SEARCH ( "E", SELECTEDVALUE ( Table1[Operation code] ),, BLANK () ) ) )2.Create a Rank measure
Rank = RANKX ( FILTER ( ALLSELECTED ( Table1 ), [Workflow number] IN VALUES ( Table1[Workflow number] ) && [Article] IN VALUES ( Table1[Article] ) ), [No], , ASC )3.Then calculate the differnce
Temps entre chaque operation = VAR a = [Rank] - 1 VAR _predate = MAXX ( FILTER ( ALLSELECTED ( Table1 ), [Workflow number] IN VALUES ( Table1[Workflow number] ) && [Article] IN VALUES ( Table1[Article] ) && [Rank] = a ), [Operation Date] ) RETURN IF ( DATEDIFF ( _predate, MAX ( Table1[Operation Date] ), DAY ) <> BLANK (), DATEDIFF ( _predate, MAX ( Table1[Operation Date] ), DAY ), 0 )Output
Best Regards!
Yolo Zhu
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Hi Juju123
You can refer to the following solution.
1.Create a num measure to extract the num from operation code.
No =
INT (
MID (
SELECTEDVALUE ( Table1[Operation code] ),
SEARCH ( "E", SELECTEDVALUE ( Table1[Operation code] ),, BLANK () ) + 1,
LEN ( SELECTEDVALUE ( Table1[Operation code] ) )
- SEARCH ( "E", SELECTEDVALUE ( Table1[Operation code] ),, BLANK () )
)
)
2.Create a Rank measure
Rank =
RANKX (
FILTER (
ALLSELECTED ( Table1 ),
[Workflow number]
IN VALUES ( Table1[Workflow number] )
&& [Article] IN VALUES ( Table1[Article] )
),
[No],
,
ASC
)
3.Then calculate the differnce
Temps entre chaque operation =
VAR a = [Rank] - 1
VAR _predate =
MAXX (
FILTER (
ALLSELECTED ( Table1 ),
[Workflow number]
IN VALUES ( Table1[Workflow number] )
&& [Article]
IN VALUES ( Table1[Article] )
&& [Rank] = a
),
[Operation Date]
)
RETURN
IF (
DATEDIFF ( _predate, MAX ( Table1[Operation Date] ), DAY ) <> BLANK (),
DATEDIFF ( _predate, MAX ( Table1[Operation Date] ), DAY ),
0
)
Output
Best Regards!
Yolo Zhu
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
- Juju1232 years agoHelper III
Hi Anonymous ,
Thanks for your solution.
I have an error of syntax in last step :
Temps entre chaque operation = VAR a = [Rank] - 1 VAR _predate = MAXX ( FILTER ( ALLSELECTED ( CAGC_ADVL_INDICATEURS_ETAPES_WF_REP ), CAGC_ADVL_INDICATEURS_ETAPES_WF_REP[Numéro du workflow] IN VALUES ( CAGC_ADVL_INDICATEURS_ETAPES_WF_REP[Numéro du workflow]) && CAGC_ADVL_INDICATEURS_ETAPES_WF_REP[Désignation du workflow] IN VALUES ( CAGC_ADVL_INDICATEURS_ETAPES_WF_REP[Désignation du workflow]) && [Rank] = a ), CAGC_ADVL_INDICATEURS_ETAPES_WF_REP[Date fin réelle] ) RETURN IF ( DATEDIFF ( _predate, CAGC_ADVL_INDICATEURS_ETAPES_WF_REP[Date du jour]), DAY ) <> BLANK (), DATEDIFF ( _predate, CAGC_ADVL_INDICATEURS_ETAPES_WF_REP[Date du jour] ), DAY ), 0 )I want to change the calcul and do a datediff between previous date of operation and today()
I try this, but it's not work :
Temps entre chaque operation =
VAR a = [Rank] - 1
VAR _predate =
MAXX (
FILTER (
ALLSELECTED ( CAGC_ADVL_INDICATEURS_ETAPES_WF_REP ),
CAGC_ADVL_INDICATEURS_ETAPES_WF_REP[Numéro du workflow]
IN VALUES ( CAGC_ADVL_INDICATEURS_ETAPES_WF_REP[Numéro du workflow])
&& CAGC_ADVL_INDICATEURS_ETAPES_WF_REP[Désignation du workflow]
IN VALUES ( CAGC_ADVL_INDICATEURS_ETAPES_WF_REP[Désignation du workflow])
&& [Rank] = a
),
CAGC_ADVL_INDICATEURS_ETAPES_WF_REP[Date fin réelle]
)
RETURN
IF (
DATEDIFF ( _predate, today()), DAY ) <> BLANK (),
DATEDIFF ( _predate, today() ), DAY ),
0
)