Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
praveenlc
Helper I
Helper I

Dax help on record level calculation

Hello, I need some help on Power BI Desktop Dax queries

could you help me to achieve the RED highlighted column or measure

praveenlc_0-1667167367547.png

 

2 ACCEPTED SOLUTIONS
v-jianboli-msft
Community Support
Community Support

Hi @praveenlc ,

 

Based on your description, I have modified your DAX:

Measure = 
VAR Total =
    ADDCOLUMNS (
        SUMMARIZE ( Repo, 'Repo'[ProcedureTitle], 'Repo'[GroupTitle], Repo[TaskTitle] ),
        "TaskEnter",
            CALCULATE (
                MIN ( Repo[Date] ),
                FILTER (
                    Repo,
                    Repo[Type] = "ExecutionEnteredTaskNode"
                        && Repo[WorkflowId] = "Open"
                        && NOT ( Repo[ModifiedWorkflowId] IN { "Closed", "Skip" } )
                            && [ProcedureTitle] = EARLIER ( Repo[ProcedureTitle] )
                            && [GroupTitle] = EARLIER ( Repo[GroupTitle] )
                            && [TaskTitle] = EARLIER ( Repo[TaskTitle] )
                )
            ),
        "TaskSkip",
            CALCULATE (
                MIN ( Repo[Date] ),
                FILTER (
                    Repo,
                    Repo[Type] = "ExecutionTaskNodeWasEdited"
                        && Repo[WorkflowId] = "Open"
                        && Repo[ModifiedWorkflowId] = "Skip"
                        && [ProcedureTitle] = EARLIER ( Repo[ProcedureTitle] )
                        && [GroupTitle] = EARLIER ( Repo[GroupTitle] )
                        && [TaskTitle] = EARLIER ( Repo[TaskTitle] )
                )
            ),
        "TaskSkipEnter",
            CALCULATE (
                MIN ( Repo[Date] ),
                FILTER (
                    Repo,
                    Repo[Type] = "ExecutionEnteredTaskNode"
                        && Repo[WorkflowId] = "Skip"
                        && NOT ( Repo[ModifiedWorkflowId] IN { "Closed", "Skip" } )
                            && [ProcedureTitle] = EARLIER ( Repo[ProcedureTitle] )
                            && [GroupTitle] = EARLIER ( Repo[GroupTitle] )
                            && [TaskTitle] = EARLIER ( Repo[TaskTitle] )
                )
            ),
        "TaskExit",
            CALCULATE (
                MAX ( Repo[Date] ),
                FILTER (
                    Repo,
                    Repo[Type] = "ExecutionTaskNodeWasEdited"
                        && Repo[WorkflowId]
                            IN { "Open", "Skip" }
                                && Repo[ModifiedWorkflowId] = "Closed"
                                && [ProcedureTitle] = EARLIER ( Repo[ProcedureTitle] )
                                && [GroupTitle] = EARLIER ( Repo[GroupTitle] )
                                && [TaskTitle] = EARLIER ( Repo[TaskTitle] )
                )
            )
    )
VAR _A =
    ADDCOLUMNS (
        Total,
        "Duration",
            IF (
                [TaskSkip] = BLANK (),
                DATEDIFF ( [TaskEnter], [TaskExit], SECOND ),
                DATEDIFF ( [TaskEnter], [TaskSkip], SECOND )
                    + DATEDIFF ( [TaskSkipEnter], [TaskExit], SECOND )
            )
    )
RETURN
    SUMX ( _A, [Duration] )

Outout:

vjianbolimsft_0-1667293217783.png

Best Regards,

Jianbo Li

If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

View solution in original post

v-jianboli-msft
Community Support
Community Support

Hi @praveenlc ,

 

This question seems to have gone beyond the initial topic.

Please consider about marking the reply to the question and create a new post on this basis, which will make the topic of the post more targeted and better help others.

Thanks in advance!

 

Best Regards,

Jianbo Li

If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

View solution in original post

5 REPLIES 5
v-jianboli-msft
Community Support
Community Support

Hi @praveenlc ,

 

This question seems to have gone beyond the initial topic.

Please consider about marking the reply to the question and create a new post on this basis, which will make the topic of the post more targeted and better help others.

Thanks in advance!

 

Best Regards,

Jianbo Li

If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

v-jianboli-msft
Community Support
Community Support

Hi @praveenlc ,

 

Based on your description, I have modified your DAX:

Measure = 
VAR Total =
    ADDCOLUMNS (
        SUMMARIZE ( Repo, 'Repo'[ProcedureTitle], 'Repo'[GroupTitle], Repo[TaskTitle] ),
        "TaskEnter",
            CALCULATE (
                MIN ( Repo[Date] ),
                FILTER (
                    Repo,
                    Repo[Type] = "ExecutionEnteredTaskNode"
                        && Repo[WorkflowId] = "Open"
                        && NOT ( Repo[ModifiedWorkflowId] IN { "Closed", "Skip" } )
                            && [ProcedureTitle] = EARLIER ( Repo[ProcedureTitle] )
                            && [GroupTitle] = EARLIER ( Repo[GroupTitle] )
                            && [TaskTitle] = EARLIER ( Repo[TaskTitle] )
                )
            ),
        "TaskSkip",
            CALCULATE (
                MIN ( Repo[Date] ),
                FILTER (
                    Repo,
                    Repo[Type] = "ExecutionTaskNodeWasEdited"
                        && Repo[WorkflowId] = "Open"
                        && Repo[ModifiedWorkflowId] = "Skip"
                        && [ProcedureTitle] = EARLIER ( Repo[ProcedureTitle] )
                        && [GroupTitle] = EARLIER ( Repo[GroupTitle] )
                        && [TaskTitle] = EARLIER ( Repo[TaskTitle] )
                )
            ),
        "TaskSkipEnter",
            CALCULATE (
                MIN ( Repo[Date] ),
                FILTER (
                    Repo,
                    Repo[Type] = "ExecutionEnteredTaskNode"
                        && Repo[WorkflowId] = "Skip"
                        && NOT ( Repo[ModifiedWorkflowId] IN { "Closed", "Skip" } )
                            && [ProcedureTitle] = EARLIER ( Repo[ProcedureTitle] )
                            && [GroupTitle] = EARLIER ( Repo[GroupTitle] )
                            && [TaskTitle] = EARLIER ( Repo[TaskTitle] )
                )
            ),
        "TaskExit",
            CALCULATE (
                MAX ( Repo[Date] ),
                FILTER (
                    Repo,
                    Repo[Type] = "ExecutionTaskNodeWasEdited"
                        && Repo[WorkflowId]
                            IN { "Open", "Skip" }
                                && Repo[ModifiedWorkflowId] = "Closed"
                                && [ProcedureTitle] = EARLIER ( Repo[ProcedureTitle] )
                                && [GroupTitle] = EARLIER ( Repo[GroupTitle] )
                                && [TaskTitle] = EARLIER ( Repo[TaskTitle] )
                )
            )
    )
VAR _A =
    ADDCOLUMNS (
        Total,
        "Duration",
            IF (
                [TaskSkip] = BLANK (),
                DATEDIFF ( [TaskEnter], [TaskExit], SECOND ),
                DATEDIFF ( [TaskEnter], [TaskSkip], SECOND )
                    + DATEDIFF ( [TaskSkipEnter], [TaskExit], SECOND )
            )
    )
RETURN
    SUMX ( _A, [Duration] )

Outout:

vjianbolimsft_0-1667293217783.png

Best Regards,

Jianbo Li

If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

hi @v-jianboli-msft could you help me on the below please, I tried ranking, Index

 

Need to find the duration based on EndTime - StartTime from the image below. Please!!!

praveenlc_0-1667321046467.png

 

OriginalDateTypeProcedureTitleGroupTitleTaskNodeIdTaskTitleStatus
2022-08-22T08:15:49ExecutionEnteredGroupNode130053Blisteratrice Smontaggio LO--Incomplete
2022-08-22T08:15:50ExecutionExitedGroupNode130053Blisteratrice Smontaggio LO--Incomplete
2022-08-22T08:15:50ExecutionEnteredTaskNode130053Blisteratrice Smontaggio LOBlisteratrice_Smontaggio_LO_1Impostare modalità CFOpen
2022-08-22T08:15:57ExecutionEnteredTaskNode130053Blisteratrice Smontaggio LOBlisteratrice_Smontaggio_LO_2Caricatore prodottoOpen
2022-08-22T08:15:57ExecutionExitedTaskNode130053Blisteratrice Smontaggio LOBlisteratrice_Smontaggio_LO_1Impostare modalità CFClosed
2022-08-22T08:15:57ExecutionTaskNodeWasEdited130053Blisteratrice Smontaggio LOBlisteratrice_Smontaggio_LO_1Impostare modalità CFOpen
2022-08-22T08:16:04ExecutionTaskNodeWasEdited130053Blisteratrice Smontaggio LOBlisteratrice_Smontaggio_LO_2Caricatore prodottoOpen
2022-08-22T08:16:05ExecutionEnteredGroupNode130053Blisteratrice Smontaggio LO--Complete
2022-08-22T08:16:05ExecutionExitedTaskNode130053Blisteratrice Smontaggio LOBlisteratrice_Smontaggio_LO_2Caricatore prodottoClosed
2022-08-22T08:16:13ExecutionExitedGroupNode130053Blisteratrice Smontaggio LO--Complete
2022-08-22T08:28:52ExecutionEnteredGroupNode130053Blisteratrice Montaggio LO--Incomplete
2022-08-22T08:28:59ExecutionExitedGroupNode130053Blisteratrice Montaggio LO--Incomplete
2022-08-22T08:29:30ExecutionEnteredGroupNode130053Blisteratrice Montaggio LO--Incomplete
2022-08-22T10:54:04ExecutionEnteredGroupNode130053Blisteratrice Montaggio LO--Incomplete
2022-08-22T10:54:09ExecutionExitedGroupNode130053Blisteratrice Montaggio LO--Incomplete
2022-08-22T10:54:31ExecutionEnteredGroupNode130053Blisteratrice Montaggio LO--Incomplete
2022-08-22T10:54:32ExecutionExitedGroupNode130053Blisteratrice Montaggio LO--Incomplete
2022-08-22T10:54:49ExecutionEnteredGroupNode130053Blisteratrice Montaggio LO--Incomplete
2022-08-22T10:54:54ExecutionExitedGroupNode130053Blisteratrice Montaggio LO--Incomplete
2022-08-22T10:54:54ExecutionEnteredTaskNode130053Blisteratrice Montaggio LOBlisteratrice_Montaggio_LO_1Caricatore prodottoOpen
2022-08-22T10:54:59ExecutionTaskNodeWasEdited130053Blisteratrice Montaggio LOBlisteratrice_Montaggio_LO_1Caricatore prodottoOpen
2022-08-22T10:55:00ExecutionEnteredGroupNode130053Blisteratrice Montaggio LO--Incomplete
2022-08-22T10:55:00ExecutionExitedTaskNode130053Blisteratrice Montaggio LOBlisteratrice_Montaggio_LO_1Caricatore prodottoSkip
2022-08-22T11:06:36ExecutionExitedGroupNode130053Blisteratrice Montaggio LO--Incomplete
2022-08-22T11:08:59ExecutionExitedTaskNode130053Blisteratrice Montaggio LOBlisteratrice_Montaggio_LO_1Caricatore prodottoSkip
2022-08-22T11:09:07ExecutionEnteredTaskNode130053Blisteratrice Montaggio LOBlisteratrice_Montaggio_LO_1Caricatore prodottoSkip
2022-08-22T11:09:07ExecutionExitedGroupNode130053Blisteratrice Montaggio LO--Incomplete
2022-08-22T11:09:14ExecutionTaskNodeWasEdited130053Blisteratrice Montaggio LOBlisteratrice_Montaggio_LO_1Caricatore prodottoSkip
2022-08-22T11:09:15ExecutionEnteredGroupNode130053Blisteratrice Montaggio LO--Complete
2022-08-22T11:09:15ExecutionExitedTaskNode130053Blisteratrice Montaggio LOBlisteratrice_Montaggio_LO_1Caricatore prodottoClosed
2022-08-22T16:29:48ExecutionEnteredGroupNode130053Blisteratrice Montaggio LO--Complete
2022-08-22T16:30:09ExecutionExitedGroupNode130053Blisteratrice Montaggio LO--Complete

Hello @v-jianboli-msft
Thank you! for the quick measure help, it works for my problem. But I guess I was not clear in explaing the real problem. I am attaching link to powerbi file in which I have created the usecase and senario. Please refer the table "Repo" and guide me to resolve.

 

Thanks in Advance!!!

 

https://www.dropbox.com/scl/fo/3s93re4anirz07bdzzu3e/h?dl=0&rlkey=gmote7izvampzn52xgau70d1j

 

praveenlc
Helper I
Helper I

I am near to the solution but finding difficult to resolve the wrong totals

praveenlc_0-1667173586273.png


using the below dax query:

TaskDuration =
VAR _TaskEnter = CALCULATE( MIN( Repo[DateTime] ), FILTER(Repo, Repo[Type] = "ExecutionEnteredTaskNode" && Repo[WorkflowPhaseId] = "Open" && NOT( Repo[ModifiedWorkflowPhaseId] IN {"Closed","Skip"}) && MAX(Repo[TaskTitle]) = Repo[TaskTitle] ) )

VAR _TaskSkip = CALCULATE( MIN( Repo[DateTime] ), FILTER(Repo, Repo[Type] = "ExecutionTaskNodeWasEdited" && Repo[WorkflowPhaseId] = "Open" && Repo[ModifiedWorkflowPhaseId] = "Skip" && MAX(Repo[TaskTitle]) = Repo[TaskTitle] ) )

VAR _TaskSkipEnter = CALCULATE( MIN( Repo[DateTime] ), FILTER(Repo, Repo[Type] = "ExecutionEnteredTaskNode" && Repo[WorkflowPhaseId] = "Skip" && NOT( Repo[ModifiedWorkflowPhaseId] IN {"Closed","Skip"}) && MAX(Repo[TaskTitle]) = Repo[TaskTitle] ) )

VAR _TaskExit = CALCULATE( MAX( Repo[DateTime] ), FILTER(Repo, Repo[Type] = "ExecutionTaskNodeWasEdited" && Repo[WorkflowPhaseId] IN {"Open", "Skip"} && Repo[ModifiedWorkflowPhaseId] = "Closed" && MAX(Repo[TaskTitle]) = Repo[TaskTitle] ) )

VAR _Calculation = CALCULATE( IF( _TaskSkip = BLANK(), DATEDIFF( _TaskEnter, _TaskExit, SECOND ), DATEDIFF( _TaskEnter , _TaskSkip, SECOND ) + DATEDIFF( _TaskSkipEnter , _TaskExit, SECOND ) ) )

VAR Total = ADDCOLUMNS ( SUMMARIZE ( Repo, Repo[TaskTitle] ), "Duration", _Calculation )

RETURN

_Calculation

Helpful resources

Announcements
LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.