Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
6 years ago
Solved

Using slicer to get date and put into column

Hi,
I want to use the slicer input to get the value (date) and substract the date with the other date in the other table.
I already create a measure with this DAX,

DateSelected = SELECTEDVALUE(DateInput[DateInput])

 but then I try to get the value to minus the date with the other date in the other table. I also tried to create a new column in other table (INVENTBATCH) with this DAX but it does not work

Days = 
VAR selected = DateSelected
return
selected-[XFSRECEIVEDATE].[Date]


How can I solve this?

  • Calculated columns are calculated once - on load. So SELECTEDVALUE will never be valid, and the column will not react to any changes you make in the report.

     

    Instead, create another measure akin to

    Days = SELECTEDVALUE(DateInput[DateInput]) - SELECTEDVALUE(INVENTBATCH[XFSRECEIVEDATE])

     and add the measure to the table or matrix where you want the value to appear. As long as rows are not summarized (so XFSRECEIVEDATE only has one value in a row), it should work. You may want to add ISBLANK tests or alternate values in the second argument to SELECTEDVALUE in order to handle cases where values are not scalar

7 Replies

  • Calculated columns are calculated once - on load. So SELECTEDVALUE will never be valid, and the column will not react to any changes you make in the report.

     

    Instead, create another measure akin to

    Days = SELECTEDVALUE(DateInput[DateInput]) - SELECTEDVALUE(INVENTBATCH[XFSRECEIVEDATE])

     and add the measure to the table or matrix where you want the value to appear. As long as rows are not summarized (so XFSRECEIVEDATE only has one value in a row), it should work. You may want to add ISBLANK tests or alternate values in the second argument to SELECTEDVALUE in order to handle cases where values are not scalar

    • Anonymous's avatar
      Anonymous
      Not applicable

      Hi hansei ,
      I want to calculate for each row. Means that if I have 3 dates in XFSRECEIVEDATE, it will come out with 3 rows that show the result of minus operation.

      Example, selected values is 01/01/2035 and the field (result) is the result that i want.

       

      XFSRECEIVEDATEresult
      01/01/20205479
      31/12/20118402
      14/05/20099363

       

  • Try

    Days = 
    VAR selected = SELECTEDVALUE(DateInput[DateInput])
    return
    datediff(selected,max([XFSRECEIVEDATE].[Date]),day)
    
    //////////////////OR
    
    Days = 
    VAR selected = maxx(SELECTEDVALUE(DateInput),DateInput[DateInput])
    return
    datediff(selected,max([XFSRECEIVEDATE].[Date]),day)
    • Anonymous's avatar
      Anonymous
      Not applicable

      Hi amitchandak ,

      You can try to look at the comment that i mentioned hansei where the result that I exactly want. I want the result by row and not a single result. Thank you.

      • hansei's avatar
        hansei
        Icon for Helper V rankHelper V
        As stated, just put the measure in the table visual. It will calculate for each row