Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
4 years ago
Solved

Summarize

Hello, 

Im new to DAX and currently stucked trying to get following result, i have a Rawdata table and below i show a ResultTable that i would like to have as a result, it should aggregates the data as it is described in the column Total in the ResultTable:

 

RawdataTable

DateFactoryShiftQty
01/08/2021AMorning5
01/08/2021AAfternoon11
01/08/2021ANight4
02/08/2021AMorning7
02/08/2021AAfternoon8
02/08/2021ANight6

 

ResultTable:

DateFactoryTotal
02/08/2021A= (01/08/2021|Night|Qty*0.75) + (02/08/2021|Morning|Qty*1.0) + (02/08/2021|Afternoon|Qty*1.0) + (02/08/2021|Night|Qty*0.25) = 19.5

 

If i simply use summarize group by date and factory i would get a wrong 21 in that example. Any idea or hint on how i can achieve this is very appreciated?

Thanks a lot

 

Edit: changed picture for actual tables in order to make it easier to copy paste

  • Anonymous's avatar
    Anonymous
    4 years ago

    Hi Anonymous ,

     

    Please use the following formula to create a measure:

    Measure =
    VAR _pre =
        CALCULATE (
            SUM ( 'Table'[Qty] ),
            FILTER (
                ALLSELECTED ( 'Table' ),
                [Date]
                    = MAX ( 'Table'[Date] ) - 1
                    && [Factory] = MAX ( 'Table'[Factory] )
                    && [Shift] = "Night"
            )
        ) * 0.75
    VAR _mornAndAfter =
        CALCULATE (
            SUM ( 'Table'[Qty] ),
            FILTER (
                ALLSELECTED ( 'Table' ),
                [Date] = MAX ( 'Table'[Date] )
                    && [Factory] = MAX ( 'Table'[Factory] )
                    && [Shift] IN { "Morning", "Afternoon" }
            )
        )
    VAR _night =
        CALCULATE (
            SUM ( 'Table'[Qty] ),
            FILTER (
                ALLSELECTED ( 'Table' ),
                [Date] = MAX ( 'Table'[Date] )
                    && [Factory] = MAX ( 'Table'[Factory] )
                    && [Shift] = "Night"
            )
        ) * 0.25
    RETURN
        _pre + _mornAndAfter + _night
    

    Here is the final output:

     

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

4 Replies

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi Anonymous ,

     

    Please use the following formula to create a measure:

    Measure =
    VAR _pre =
        CALCULATE (
            SUM ( 'Table'[Qty] ),
            FILTER (
                ALLSELECTED ( 'Table' ),
                [Date]
                    = MAX ( 'Table'[Date] ) - 1
                    && [Factory] = MAX ( 'Table'[Factory] )
                    && [Shift] = "Night"
            )
        ) * 0.75
    VAR _mornAndAfter =
        CALCULATE (
            SUM ( 'Table'[Qty] ),
            FILTER (
                ALLSELECTED ( 'Table' ),
                [Date] = MAX ( 'Table'[Date] )
                    && [Factory] = MAX ( 'Table'[Factory] )
                    && [Shift] IN { "Morning", "Afternoon" }
            )
        )
    VAR _night =
        CALCULATE (
            SUM ( 'Table'[Qty] ),
            FILTER (
                ALLSELECTED ( 'Table' ),
                [Date] = MAX ( 'Table'[Date] )
                    && [Factory] = MAX ( 'Table'[Factory] )
                    && [Shift] = "Night"
            )
        ) * 0.25
    RETURN
        _pre + _mornAndAfter + _night
    

    Here is the final output:

     

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

  • if you are new to DAX then this is a pretty tall ask.

     

    You didn't say if you wanted this as a measure or calculated column. Here's a calculated column version