Forum Discussion

mtrevisiol's avatar
mtrevisiol
Helper V
4 years ago
Solved

Days between two dates in different rows

Hi everyone,

I've got a table that contains the price list of some products that my company buys from a certain supplier:

For each item there are the start date and the end date of the price shown in the line (31/12/2099 means the the price is currently valid).

My goal is to find out if there are any gaps between dates, so I need to calculate, for each item, the difference between the ValidityEndingDate and the next ValidityStartingDate:

 

 

Here is the PBIX file: https://www.dropbox.com/s/3q2rldzekcbjsh3/Days%20between%20dates.pbix?dl=0

I hope it's all clear. Thank you.

 

  • A calculated column in DAX:

    ColumnZ = var _item = 'Table'[Item]
    var _endDate = 'Table'[ValidityEndingDate]
    RETURN
    CALCULATE(MIN('Table'[ValidityStartingDate]), FILTER('Table', 'Table'[Item] = _item && 'Table'[ValidityStartingDate] > _endDate))

    You can then use DATEDIFF in another column to get the days between the column and the ending date.

    I haven't really tested it so please do that.

2 Replies

  • HotChilli's avatar
    HotChilli
    Community Champion

    A calculated column in DAX:

    ColumnZ = var _item = 'Table'[Item]
    var _endDate = 'Table'[ValidityEndingDate]
    RETURN
    CALCULATE(MIN('Table'[ValidityStartingDate]), FILTER('Table', 'Table'[Item] = _item && 'Table'[ValidityStartingDate] > _endDate))

    You can then use DATEDIFF in another column to get the days between the column and the ending date.

    I haven't really tested it so please do that.

    • mtrevisiol's avatar
      mtrevisiol
      Helper V

      That's great HotChilli ! I've created this column:

       

      Days between pricelists =
      var _item = 'Table'[Item]
      var _endDate = 'Table'[ValidityEndingDate]
      var _next_date = CALCULATE(MIN('Table'[ValidityStartingDate]), FILTER('Table', 'Table'[Item] = _item && 'Table'[ValidityStartingDate] >= _endDate))
      RETURN DATEDIFF('Table'[ValidityEndingDate], _next_date, DAY)