Forum Discussion
RWWRRW
3 years agoRegular Visitor
Days Beetween deliverydates
I have a table with different order numbers, different materials and different delivery dates. I would now like to have the number of days of the delivery date per material evaluated. In Excel I had...
RWWRRW
3 years agoRegular Visitor
sorry i hope this table shows it. I want in Power Bi via Dax calculate the days beetween the deliverdates from each part
| PO | Part | Date LfD | days |
| 551196 | 4711 | 07.06.2023 | |
| 551197 | 4711 | 19.06.2023 | 12 |
| 82706078 | 4712 | 23.06.2023 | |
| 82693981 | 4712 | 30.06.2023 | 7 |
| 5555125 | 4713 | 07.06.2023 | |
| 5555126 | 4713 | 22.06.2023 | 15 |
| 6238279 | 4715 | 29.06.2023 | |
| 6238447 | 4715 | 29.06.2023 | 0 |
| 6240493 | 5050 | 16.06.2023 | |
| 6238006 | 5050 | 24.06.2023 | 8 |
| 552230 | 5053 | 01.06.2023 | |
| 552230 | 5053 | 15.06.2023 | 14 |
| 552230 | 5053 | 29.06.2023 | 14 |
| 6240497 | 78902 | 20.06.2023 | |
| 6240576 | 78902 | 20.06.2023 | 0 |
| 6240915 | 78902 | 27.06.2023 | 7 |
danextian
3 years agoSuper User
Hi RWWRRW
You can use RANKX to rank the dates by part and another calc column to get the previous date
DateRank =
RANKX (
FILTER ( 'Table', 'Table'[Part] = EARLIER ( 'Table'[Part] ) ),
'Table'[Date LfD],
,
ASC,
DENSE
)
PrevDate (RANKX) =
CALCULATE (
MAX ( 'Table'[Date LfD] ),
FILTER (
FILTER ( 'Table', 'Table'[Part] = EARLIER ( 'Table'[Part] ) ),
'Table'[DateRank]
= EARLIER ( 'Table'[DateRank] ) - 1
)
)
Or a single calc column to for the previous date
PrevDate (not RANKX) =
CALCULATE (
MAX ( 'Table'[Date LfD] ),
FILTER (
ALLEXCEPT ( 'Table', 'Table'[Part] ),
'Table'[PrevDate (RANKX)] < EARLIER ( 'Table'[PrevDate (RANKX)] )
)
)
For larger tables, I prefer the RANKX version. Performance shouldn't be an issue with small tables.
Now to get the difference, you can use either of the two previous date column
Difference =
IF ( 'Table'[PrevDate (RANKX)] = BLANK (), 0, 'Table'[Date LfD] - 'Table'[PrevDate (RANKX)] )