Forum Discussion

amarsale85's avatar
amarsale85
Helper II
6 years ago
Solved

Avoid Slicer not filter

Hi Experts,

 

I am trying to get a "count of Tasks" for Previous Period (PP). So for example, if the date filter is from 2020-03-01 to 2020-04-02, then difference between from and to dates = 32 days, so the previous period would be calculated as

From Date filter for PP : (From date=2020-03-01) - 1 - 32 days = 2020-01-28 

To Date filter for PP : (From date=2020-03-01) - 1 day = 2020-02-29

 

This measure is sliced by Location attribute to view number of tasks in PP by location

Relation in Model : DimDate <---> FactTask <----> DimLocation

Fact Data:

FactKey TaskID LocationID DateKey

1           1           1                20200302      

2           2           2                20200227

3           3           1                20200125

4           4           2                20200220

5           5           1                20200302

 

As a 1st step, I used FIRSTDATE() function to get "from date" as "2020-03-01" but rather i get firstdate for that location,

So for Location ID = 1 i get FirstDate as "2020-01-25" and for Location ID = 2 i get FirstDate as "2020-02-20" which isn't what i want. This leads to incorrect values. The issue is if i use FirstDate/Min function to get the "From Date" from date filter its getting sliced by location and i am getting wrong date.

 

I am using below dax formula:

 

=CALCULATE([Count of TaskID],DATESBETWEEN(DimDate[Date], DATEADD(PREVIOUSDAY(FIRSTDATE(DimDate[Date])),-1*(DATEDIFF(FIRSTDATE( DimDate[Date] ), LASTDATE(DimDate[Date] ), DAY )),DAY),PREVIOUSDAY(FIRSTDATE(DimDate[Date]))))

 

 

Thanks,

Amar

4 Replies

  • amarsale85 I don't know how you are doing it, assuming you are using date table where you selected the range and this is what I will do for PP

     

    PP = 
    VAR __minDate = MIN ( DateTable[Date] )
    VAR __maxDate = MAX ( DateTable[Date] )
    VAR __numberofDays = DATEDIFF ( __minDate, __maxDate, DAY )
    VAR __ppStartDate = __minDate - _numberofDays - 1
    VAR __ppEndDate = __minDate - 1
    RETURN
    CALCULATE ( SUM ( DataTable[Column] ), DATESTBETWEEN ( DateTable[Date], __ppStartDate, __ppEndDate )
    )

    I would  Kudos if my solution helped. 👉 If you can spend time posting the question, you can also make efforts to give Kudos whoever helped to solve your problem. It is a token of appreciation!

     

     

    • amarsale85's avatar
      amarsale85
      Helper II

      Thank you for the Answer parry2k but i am 100% sure it cannot resolved in Power BI using dax measure as it was a model design issue which resolved this issue thankfully after wasting 10 hours of my time.

      • v-easonf-msft's avatar
        v-easonf-msft
        Community Support

        Hi , amarsale85 

        Could you please tell me whether your problem has been solved?

        If it is ,please mark the helpful replies or add your reply as Answered to close this thread.


        Best Regards,
        Community Support Team _ Eason