This is best Fabric, Power BI, SQL and AI community event. How do we know? The last event sold out! Save €200 with code FABCMTY200.
Register nowA new Data Days event is coming soon! This time we’re going bigger than ever. Fabric, Power BI, SQL, AI and more. Don't miss out.
Hi,
How would I calculate Delta-values derived from a Date in combination with ID:
| Date | ID | Values | Delta-values |
| DD-MM-YYYY 12:00 | 1 | 88 | |
| DD-MM-YYYY 12:00 | 2 | 23 | |
| DD-MM-YYYY 12:15 | 1 | 89 | 1 |
| DD-MM-YYYY 12:15 | 2 | 25 | 2 |
Solved! Go to Solution.
Hi @Anonymous ,
Here are the steps you can follow:
1. Increase the index through power query
2. Create calculcated column.
Delta-values =
var _lastindex=
CALCULATE(MAX('Table'[Index]),FILTER(ALL('Table'),[Metern]=EARLIER([Metern])&&[Index]<EARLIER([Index])))
var _lastdata=
CALCULATE(SUM('Table'[Data]),FILTER('Table',[Index]=_lastindex))
return IF(_lastindex=BLANK(),BLANK(),[Data]-_lastdata)3. Result.
You can downloaded PBIX file from here.
Best Regards,
Liu Yang
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Hi @Anonymous ,
Here are the steps you can follow:
1. Increase the index through power query
2. Create calculcated column.
Delta-values =
var _lastindex=
CALCULATE(MAX('Table'[Index]),FILTER(ALL('Table'),[Metern]=EARLIER([Metern])&&[Index]<EARLIER([Index])))
var _lastdata=
CALCULATE(SUM('Table'[Data]),FILTER('Table',[Index]=_lastindex))
return IF(_lastindex=BLANK(),BLANK(),[Data]-_lastdata)3. Result.
You can downloaded PBIX file from here.
Best Regards,
Liu Yang
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
To fact that you can do something does not mean you should. Such data transformations are best done (and easy!) in Power Query. DAX should be used to create calculated columns only as the very, very, very last resort. There are many reasons behind this, two of them being poor compression and model bloat if done through DAX. Please use Power Query - the right tool for the job.
Daxer,
That all makes sense,
However, I would still need the DAX code for it,
Any input for the DAX code highly appreciated!
No, you don't need DAX. You need M - the language of Power Query. That's the whole point. DAX is for data analysis. M is for data munging.
Sorry - so Power Query it is..
Still need the a working code though!
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("hY9BCsAgDAS/UnK2mGytFL8i/v8btdCi1gUhOY3ZdXIWKHRXq7MZkmodcWJ1IcX9+dnxY+IhoeM28TjkB5L/cdD71g/6v9YPmh+H/GvkWPhj4Q/ur/Bq/nnF/XvO/Ec++/ec+fP+17/c", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Datetime = _t, ID = _t, Value = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Datetime", type datetime}, {"ID", Int64.Type}, {"Value", Int64.Type}}),
#"Sorted Rows" = Table.Sort(#"Changed Type",{{"ID", Order.Ascending}, {"Datetime", Order.Ascending}}),
#"Added Index" = Table.AddIndexColumn(#"Sorted Rows", "Index", 1, 1, Int64.Type),
#"Reordered Columns" = Table.ReorderColumns(#"Added Index",{"Index", "Datetime", "ID", "Value"}),
#"Added Custom" = Table.AddColumn(#"Reordered Columns",
"ValueBefore",
each Table.SelectRows(
#"Reordered Columns",
(r) => r[ID] = [ID] and [Index] = r[Index] + 1)
),
#"Expanded ValueBefore" = Table.ExpandTableColumn(#"Added Custom", "ValueBefore", {"Value"}, {"Value.1"}),
#"Renamed Columns" = Table.RenameColumns(#"Expanded ValueBefore",{{"Value.1", "ValueBefore"}}),
#"Added Custom1" = Table.AddColumn(#"Renamed Columns", "Delta", each [Value] - [ValueBefore]),
#"Removed Columns" = Table.RemoveColumns(#"Added Custom1",{"Value", "ValueBefore", "Index"})
in
#"Removed Columns"
Here's the M code. Paste it into the Advanced Editor in Power Query and you'll see step-by-step how this is done. Then use it accordingly.
Hi @Anonymous ,
Here are the steps you can follow:
1. Create calculcated column.
Delta-values =
var _max=MAX('Table'[Date])
var _min=MIN('Table'[Date])
var _1=
CALCULATE(SUM('Table'[Values]),FILTER('Table','Table'[Date]=_max&&'Table'[ID]=EARLIER('Table'[ID])))
-
CALCULATE(SUM('Table'[Values]),FILTER('Table','Table'[Date]=_min&&'Table'[ID]=EARLIER('Table'[ID])))
return IF('Table'[Date]=_min,BLANK(),_1)
2. Result.
You can downloaded PBIX file from here.
Best Regards,
Liu Yang
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Thanks Liu,
I followed your steps, and also ended up with a column - however the values seems wrong and does not reflect the expected delta-value as in your example,
Where did I go wrong?
@Anonymous , Try formula
Column = var _1 = MAXX(FILTER('Table',[ID] =EARLIER('Table'[ID]) && [Date] <EARLIER('Table'[Date])), LASTNONBLANKVALUE('Table'[Date],'Table'[Values]))
return if( ISBLANK(_1), BLANK(),[Values]-_1)
Check out the May 2026 Power BI update to learn about new features.
Sign up to receive a private message when registration opens and key events begin.
If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.
| User | Count |
|---|---|
| 32 | |
| 25 | |
| 23 | |
| 22 | |
| 13 |
| User | Count |
|---|---|
| 61 | |
| 47 | |
| 27 | |
| 24 | |
| 19 |