Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
Hi all,
I have the following table structure within power bi
DateTime | IN | OUT | INSIDE |
28/11/2022 11:00:00 | 1 | 1 | |
28/11/2022 12:00:00 | 3 | 2 | 2 |
28/11/2022 13:00:00 | 4 | 5 | 1 |
28/11/2022 14:00:00 | 2 | 1 | 2 |
Is it possible to calculate the INSIDE column within power bi via a measure or calculated column?
When doing this in Excel it is very easy to calculate this, just take one cell from above and then add this number with the outcome of the IN - OUT calculation. That would be something like this in Excel (where C stands for INSIDE, A for IN and B for OUT.):
=C1 + (A2 - B2)
Solved! Go to Solution.
Hi , @JeroenR
According to your description, you want to "get value from previous row".
First , you need to sort the [DateTime] in Power Query and you need to check the [DateTime] is single value in each row. IF not , you need to add an index column in Power Query Editor as a row number to judge .
Here, i use your [DateTime] as a row number to check which row is calculating.
Then we can click "New Column" to add a calculated column by this dax code:
Column = var _cur_row = [DateTime]
var _t =ADDCOLUMNS( FILTER('Table' , 'Table'[DateTime]<= _cur_row) , "cal" , [IN] - [OUT])
return
SUMX(_t ,[cal])
Then we can meet your need:
Thank you for your time and sharing, and thank you for your support and understanding of PowerBI!
Best Regards,
Aniya Zhang
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly
hi @JeroenR
you may also add a calculated column like:
INSIDE2 =
SUMX(
FILTER(
TableName,
TableName[DateTime]<=EARLIER(TableName[DateTime])
),
TableName[IN] - TableName[OUT]
)
it worked like:
Thank you both @v-yueyunzh-msft and @FreemanZ . Both of you solutions works very good and do the job in a much better way than what I had created myself!
I have made a small adjustment to the code so that it resets the counts to 0 every next day and also added a function that it prevents the number to be below 0. See the code below:
INSIDE =
MAX(0,
SUMX(
FILTER(
Footfall,
'Footfall'[Date.1] = EARLIER('Footfall'[Date.1]) &&
Footfall[Date / time] <= EARLIER(Footfall[Date / time])
),
Footfall[bezoekers(In)] - Footfall[bezoekers(Out)]
)
)
Thank you again both for your solution and help!
hi @JeroenR
you may also add a calculated column like:
INSIDE2 =
SUMX(
FILTER(
TableName,
TableName[DateTime]<=EARLIER(TableName[DateTime])
),
TableName[IN] - TableName[OUT]
)
it worked like:
Hi , @JeroenR
According to your description, you want to "get value from previous row".
First , you need to sort the [DateTime] in Power Query and you need to check the [DateTime] is single value in each row. IF not , you need to add an index column in Power Query Editor as a row number to judge .
Here, i use your [DateTime] as a row number to check which row is calculating.
Then we can click "New Column" to add a calculated column by this dax code:
Column = var _cur_row = [DateTime]
var _t =ADDCOLUMNS( FILTER('Table' , 'Table'[DateTime]<= _cur_row) , "cal" , [IN] - [OUT])
return
SUMX(_t ,[cal])
Then we can meet your need:
Thank you for your time and sharing, and thank you for your support and understanding of PowerBI!
Best Regards,
Aniya Zhang
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
113 | |
97 | |
85 | |
70 | |
61 |
User | Count |
---|---|
151 | |
121 | |
104 | |
87 | |
67 |