Forum Discussion

nvmtrang's avatar
nvmtrang
Frequent Visitor
3 years ago
Solved

Power BI and Data warehouse

Hi, we have some back dated transactions where business users modify sale amounts. In power bi, they want to see latest records when they select current month. But the tricky thing is when they select past months, old records get displayed. Just want to know how to design data warehouse properly or write some DAX in PBI to meet their requirement? 

 

DWH: a fact table, monthly etl and data loading is append. So, in Jul, biz user modifies Mar record. In sep, biz user again modifies Mar and Apr records. 

in PBI, if current month is Mar, PBI displays all 3 records (up to current month), with Mar record : 100

if current month is Jul, PBI displays all 7 records, with Mar record: 150 (latest up to Jul). BUT when user selects Mar, PBI displays all 3 records, with Mar record: 100

If current month is Sep, PBI displays all 9 records, with Mar record: 250 (latest up to Sep), Apr: 250 (latest up to Sep). BUT when user selects Mar, PBI displays all 3 records, with Mar record: 100. When user select Apr, PBI displays all 4 records, with Mar record: 150 (latest up to Apr), Apr record: 200.

 

  • can anyone help? really appreaciate your help on this 😁

  • Hi, nvmtrang 

     

    You can try the following methods.

    Sample data:

    Measure = 
    VAR _Sum =
        CALCULATE ( SUM ( 'Table'[Sales Amount] ),
            FILTER ( ALL ( 'Table' ),
                [Etl Month] = SELECTEDVALUE ( Slicer[Slicer Month] )
                    && [Sales Month] = SELECTEDVALUE ( 'Table'[Sales Month] ) ) )
    VAR _N1 =
        IF ( _Sum = BLANK (), MIN ( 'Table'[Sales Amount] ), _Sum )
    RETURN
        IF ( SELECTEDVALUE ( 'Table'[Sales Month] ) <= SELECTEDVALUE ( Slicer[Slicer Month] ),
            _N1,
            BLANK ()
        )

    Is this the result you expect?

     

    Best Regards,

    Community Support Team _Charlotte

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

     

     

3 Replies

  • nvmtrang's avatar
    nvmtrang
    Frequent Visitor

    can anyone help? really appreaciate your help on this 😁

  • v-zhangti's avatar
    v-zhangti
    Icon for Community Support rankCommunity Support

    Hi, nvmtrang 

     

    You can try the following methods.

    Sample data:

    Measure = 
    VAR _Sum =
        CALCULATE ( SUM ( 'Table'[Sales Amount] ),
            FILTER ( ALL ( 'Table' ),
                [Etl Month] = SELECTEDVALUE ( Slicer[Slicer Month] )
                    && [Sales Month] = SELECTEDVALUE ( 'Table'[Sales Month] ) ) )
    VAR _N1 =
        IF ( _Sum = BLANK (), MIN ( 'Table'[Sales Amount] ), _Sum )
    RETURN
        IF ( SELECTEDVALUE ( 'Table'[Sales Month] ) <= SELECTEDVALUE ( Slicer[Slicer Month] ),
            _N1,
            BLANK ()
        )

    Is this the result you expect?

     

    Best Regards,

    Community Support Team _Charlotte

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