Power BI is turning 10! Tune in for a special live episode on July 24 with behind-the-scenes stories, product evolution highlights, and a sneak peek at what’s in store for the future.
Save the dateEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
Hi!
I need to calculate values that are accumulated if it is in a certain condition.
Basically, if the value of Control is different from 0, the value of
Duration is repeated in the sum_duration column, in case the value of Control_01 = 0 must be accumulated until the value of Control is different from 0.
I'm sending an example table with what I need to do.
Solved! Go to Solution.
Hi,
Please check the below picture and the attached pbix file.
It is for creating measures.
Sum duration control 1: =
VAR _currentID =
MAX ( Data[ID] )
VAR _previousIDcontrolnumberzero =
MAXX (
FILTER ( ALL ( Data ), Data[ID] < _currentID && Data[Control_01] <> 0 ),
Data[ID]
) + 1
VAR _condition =
MAXX ( FILTER ( ALL ( Data ), Data[ID] = _currentID - 1 ), Data[Control_01] )
RETURN
IF (
HASONEVALUE ( Data[ID] ),
IF (
_previousIDcontrolnumberzero <> BLANK ()
&& _condition = 0,
CALCULATE (
SUM ( Data[Duration] ),
FILTER (
ALL ( Data ),
Data[ID] >= _previousIDcontrolnumberzero
&& Data[ID] <= _currentID
)
),
SUM ( Data[Duration] )
)
)
Sum duration control 2: =
VAR _currentID =
MAX ( Data[ID] )
VAR _previousIDcontrolnumberzero =
MAXX (
FILTER ( ALL ( Data ), Data[ID] < _currentID && Data[Control_02] <> 0 ),
Data[ID]
) + 1
VAR _condition =
MAXX ( FILTER ( ALL ( Data ), Data[ID] = _currentID - 1 ), Data[Control_02] )
RETURN
IF (
HASONEVALUE ( Data[ID] ),
IF (
_previousIDcontrolnumberzero <> BLANK ()
&& _condition = 0,
CALCULATE (
SUM ( Data[Duration] ),
FILTER (
ALL ( Data ),
Data[ID] >= _previousIDcontrolnumberzero
&& Data[ID] <= _currentID
)
),
SUM ( Data[Duration] )
)
)
Hi,
Please check the below picture and the attached pbix file.
It is for creating measures.
Sum duration control 1: =
VAR _currentID =
MAX ( Data[ID] )
VAR _previousIDcontrolnumberzero =
MAXX (
FILTER ( ALL ( Data ), Data[ID] < _currentID && Data[Control_01] <> 0 ),
Data[ID]
) + 1
VAR _condition =
MAXX ( FILTER ( ALL ( Data ), Data[ID] = _currentID - 1 ), Data[Control_01] )
RETURN
IF (
HASONEVALUE ( Data[ID] ),
IF (
_previousIDcontrolnumberzero <> BLANK ()
&& _condition = 0,
CALCULATE (
SUM ( Data[Duration] ),
FILTER (
ALL ( Data ),
Data[ID] >= _previousIDcontrolnumberzero
&& Data[ID] <= _currentID
)
),
SUM ( Data[Duration] )
)
)
Sum duration control 2: =
VAR _currentID =
MAX ( Data[ID] )
VAR _previousIDcontrolnumberzero =
MAXX (
FILTER ( ALL ( Data ), Data[ID] < _currentID && Data[Control_02] <> 0 ),
Data[ID]
) + 1
VAR _condition =
MAXX ( FILTER ( ALL ( Data ), Data[ID] = _currentID - 1 ), Data[Control_02] )
RETURN
IF (
HASONEVALUE ( Data[ID] ),
IF (
_previousIDcontrolnumberzero <> BLANK ()
&& _condition = 0,
CALCULATE (
SUM ( Data[Duration] ),
FILTER (
ALL ( Data ),
Data[ID] >= _previousIDcontrolnumberzero
&& Data[ID] <= _currentID
)
),
SUM ( Data[Duration] )
)
)
Check out the July 2025 Power BI update to learn about new features.
This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.
User | Count |
---|---|
20 | |
7 | |
6 | |
5 | |
5 |
User | Count |
---|---|
26 | |
10 | |
10 | |
9 | |
6 |