Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
4 years ago
Solved

Get last value in date column

Hello,

I need to perform ISBLANK on a date column where there are blank values, so i thought to change the null values to 01/01/1000.
But, i cant still use IF function to compare the MAX[DATE]-1 = 01/01/1000, as MAX[DATE]-1 returns the actual max date -1 .
For instance if  max[DATE] = 08/08/2022, then MAX[DATE]-1 will be 07/08/2022 whereas i want it to return 01/01/1000.

Also is there a way to check for nulls in date column?
Thanks in advance.

 

  • OliT's avatar
    OliT
    4 years ago

    Hi Anonymous 

    go to power query, add an index column, then use the column code below

     

    Column = 
    var _last=MAXX(FILTER('Table','Table'[Index]<EARLIER('Table'[Index]) && 'Table'[Column1]<>BLANK()),[Index])
    var _date=MAXX(FILTER('Table','Table'[Index]=_last),[Column1])
    return 
    IF(ISBLANK('Table'[Column1]),_date-'Table'[Index]+_last,'Table'[Column1])

     

    result

     

     

    Regards,

    OliT

4 Replies

  • Anonymous , Not very clear, Try like

     

    coalesce([Date], date(1000,1,1)

     

    But I doubt power bi support year below 1899

    • Anonymous's avatar
      Anonymous
      Not applicable

      Thanks for the response, but it doesnt solve my problem.

      I'll try to explain again. I wish find NAV-CHAESH for MAX date and divide it by the NAV-CHAESH of the previous date and subtract 1 so that i get the percentage difference. This works fine if there's no gap in the dates, but in my case there are some 'null' values. What i wish to achieve is that if the [DATE]-1 is 'null', then look for the next nonblank value.

       

      My measure for this:

       

      Measure =
       IFERROR(DIVIDE(CALCULATE(SUM(CUF[NAV-CHAESH]),FILTER(ALL(CUF[Date]),CUF[Date]=max(CUF[Date]))),
          IF(ISBLANK(MAX(CUF[Date])-1),
          LASTNONBLANKVALUE(CALCULATETABLE(ALLSELECTED(CUF[Date]),CUF[Date]<TODAY()-1),SUM(CUF[NAV-CHAESH])),
          CALCULATE(sum(CUF[NAV-CHAESH]), FILTER(ALL(CUF[Date]),CUF[Date]=max(cuf[Date])-1))),"NA")-1,"NA")

        

      Data set:

       

    • Anonymous's avatar
      Anonymous
      Not applicable

      In simple words

      I wish this measure to return the value 1;

       

      Measure 2 = IF(ISBLANK(MAX(CUF[Date])-1),1,0)
       

      as the date 07/08/2022 is blank in my date column;

       

      • OliT's avatar
        OliT
        Icon for Resolver I rankResolver I

        Hi Anonymous 

        go to power query, add an index column, then use the column code below

         

        Column = 
        var _last=MAXX(FILTER('Table','Table'[Index]<EARLIER('Table'[Index]) && 'Table'[Column1]<>BLANK()),[Index])
        var _date=MAXX(FILTER('Table','Table'[Index]=_last),[Column1])
        return 
        IF(ISBLANK('Table'[Column1]),_date-'Table'[Index]+_last,'Table'[Column1])

         

        result

         

         

        Regards,

        OliT