Get certified for free when you join Fabric Data Days 2026 and dive into Fabric, Power BI, SQL, AI, and other essential data skills.
Join nowData Days is here! Join us now for 60+ days of learning, challenges, and connection. Learn more
Hello,
I am trying to make an report on how many people have been in a building. I have 3 counters and they count the amount of people that go in and out per 15 minutes. I am trying to get the difference per counter per timestamp per direction. I have something that works but is really slow/consumes a lot of CPU and memory on large amount of data.
Diff = Var baseFilter = FILTER('Blad1','Blad1'[Device Name] = EARLIER('Blad1'[Device Name]) &&'Blad1'[Counter Index]=EARLIER('Blad1'[Counter Index]))
var selectDate = CALCULATE(MAX('Blad1'[Timestamp]),baseFilter, FILTER(baseFilter, 'Blad1'[Timestamp]<EARLIER('Blad1'[Timestamp] )))
var v='Blad1'[Value] - CALCULATE(sum('Blad1'[Value]),baseFilter, FILTER(baseFilter, 'Blad1'[Timestamp] =selectDate))
return
if(selectDate=BLANK(),BLANK(), if(v <0, 'Blad1'[Value],v))
I am guessing that the EARLIER function is the bottleneck
I am looking for a simpler/faster solution to this.
The data: Difference.pbix
Solved! Go to Solution.
Hi @jschoot ,
52000 records should be the issue, the formula will work for each rows and may filter all rows in calculation of each row(even though the VertiPaq engine will optimize this part of the calculation , but it is still a heavy work). And there is no aggregate function in your formula.
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Best Regards,
Dedmon Dai
Hi @jschoot ,
Would you please try to use the following calculated column:
Diff =
VAR DN = Blad1[Device Name]
VAR CI = Blad1[Counter Index]
VAR TS = Blad1[Timestamp]
VAR selectDate =
CALCULATE (
MAX ( Blad1[Timestamp] ),
FILTER (
Blad1,
Blad1[Device Name] = DN
&& Blad1[Counter Index] = CI
&& Blad1[Timestamp] < TS
)
)
VAR V =
Blad1[Value]
- CALCULATE (
SUM ( Blad1[Value] ),
FILTER (
Blad1,
Blad1[Device Name] = DN
&& Blad1[Counter Index] = CI
&& Blad1[Timestamp] = selectDate
)
)
RETURN
IF ( selectDate = BLANK (), BLANK (), IF ( v < 0, 'Blad1'[Value], v ) )
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Best Regards,
Dedmon Dai
Thank you @v-deddai1-msft,
It works, is easier to read in my opinion but it is not faster nor less memory consuming. Could this be caused by the amount of records? 52000 records should not be many for PBI in my opinion..
Best regards,
Joris
Hi @jschoot ,
52000 records should be the issue, the formula will work for each rows and may filter all rows in calculation of each row(even though the VertiPaq engine will optimize this part of the calculation , but it is still a heavy work). And there is no aggregate function in your formula.
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Best Regards,
Dedmon Dai
@amitchandak I found that the download link did not work as expected. Now it should work.
Don't miss out on Data Days, June 15 through August 7. Learn Fabric, Power BI, SQL, AI and more.
Check out the May 2026 Power BI update to learn about new features.
| User | Count |
|---|---|
| 22 | |
| 21 | |
| 20 | |
| 17 | |
| 13 |
| User | Count |
|---|---|
| 58 | |
| 50 | |
| 37 | |
| 29 | |
| 24 |