Forum Discussion

Slaper's avatar
Slaper
Frequent Visitor
2 years ago
Solved

Create a table based on a date

I have the following problem. 

Create a measure :

NewTableLastDate =
var
Find =SWITCH(
WEEKDAY(TODAY(),2)
,1,today()-4
,7,today()-3
,6,today()-2
,today()-1
)
Var compare = if(
Find > max('tbl'[Dates])
,max('tbl'[Dates])
,Find
)
return compare

then a create a table:

TodayDat = filter('tbl','tbl'[Dates]=[NewTableLastDate])
But the filter is not working like this. if I do it like this, then it works.
NewTableLastDate =
SWITCH(
    WEEKDAY(TODAY(),2)
    ,1,today()-4
    ,7,today()-3
    ,6,today()-2
    ,today()-1
)
What am I doing wrong?
  • Slaper's avatar
    Slaper
    2 years ago

    I have found the solution,

     

    TodayDat =
    VAR Find =SWITCH(
    WEEKDAY(NOW(),2)
    ,1,today()-4
    ,7,today()-3
    ,6,today()-2
    ,today()-1
    )
    VAR Compare=if(
    Find > max('tbl'[Dates])
    ,max('tbl'[Dates])
    ,Find
    )
    RETURN
    CALCULATETABLE (
    FILTER ( tbl, 'tbl'[Dates]=Compare))

4 Replies

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi Slaper ,

     

    What Greg_Deckler said makes sense.

     

    In DAX, measures are designed to aggregate data and return a single value.

     

    The problem arises from trying to compare the column directly to the measure in the function. You should use calculated columns to achieve the desired results.

     

    Replace NewTableLastDate with a calculated column so that you can use this column directly in filter expressions.

     

    I would be grateful if you could provide me with sample data, please remove any sensitive data in advance.

     

    If you have any further questions please feel free to contact me.

     

    Best Regards,
    Yang
    Community Support Team

     

    If there is any post helps, then please consider Accept it as the solution  to help the other members find it more quickly.
    If I misunderstand your needs or you still have problems on it, please feel free to let us know. Thanks a lot!

    • Slaper's avatar
      Slaper
      Frequent Visitor

      Sorry, how to upload a .pbix

    • Slaper's avatar
      Slaper
      Frequent Visitor

      I have found the solution,

       

      TodayDat =
      VAR Find =SWITCH(
      WEEKDAY(NOW(),2)
      ,1,today()-4
      ,7,today()-3
      ,6,today()-2
      ,today()-1
      )
      VAR Compare=if(
      Find > max('tbl'[Dates])
      ,max('tbl'[Dates])
      ,Find
      )
      RETURN
      CALCULATETABLE (
      FILTER ( tbl, 'tbl'[Dates]=Compare))