Forum Discussion
Anonymous
3 years agoNot applicable
How to write specific time formula
If the next row is in timespan within 30 minutes of the current row then increment count +1 else reset count. Below you can see the desired output:
- 3 years ago
Hi Anonymous ,
Please try:
First add an index column:
Then create a calculated column:
Column = VAR _a = CALCULATE ( MAX ( 'Table'[Date] ) + MAX ( 'Table'[Time] ), FILTER ( 'Table', [Index] = EARLIER ( 'Table'[Index] ) - 1 ) ) VAR _b = [Date] + [Time] VAR _c = ADDCOLUMNS ( 'Table', "a", CALCULATE ( MAX ( 'Table'[Date] ) + MAX ( 'Table'[Time] ), FILTER ( 'Table', [Index] = EARLIER ( 'Table'[Index] ) - 1 ) ), "b", [Date] + [Time] ) VAR _diff = ADDCOLUMNS ( _c, "Diff", DATEDIFF ( [a], [b], MINUTE ) ) VAR _maxindex = MINX ( FILTER ( _diff, [Diff] > 30 && [Index] >= EARLIER ( 'Table'[Index] ) ), [Index] ) VAR _minindex = MAXX ( FILTER ( _diff, [Diff] > 30 && [Index] <= EARLIER ( 'Table'[Index] ) ), [Index] ) + 0 VAR _filtertable = FILTER ( 'Table', [Index] >= _minindex && [Index] <= _maxindex ) VAR _count = COUNTROWS ( FILTER ( _filtertable, [Index] <= EARLIER ( 'Table'[Index] ) ) ) RETURN _countFinal output:
Best Regards,
Jianbo Li
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
v-jianboli-msft
3 years agoCommunity Support
Hi Anonymous ,
Please try:
First add an index column:
Then create a calculated column:
Column =
VAR _a =
CALCULATE (
MAX ( 'Table'[Date] ) + MAX ( 'Table'[Time] ),
FILTER ( 'Table', [Index] = EARLIER ( 'Table'[Index] ) - 1 )
)
VAR _b = [Date] + [Time]
VAR _c =
ADDCOLUMNS (
'Table',
"a",
CALCULATE (
MAX ( 'Table'[Date] ) + MAX ( 'Table'[Time] ),
FILTER ( 'Table', [Index] = EARLIER ( 'Table'[Index] ) - 1 )
),
"b", [Date] + [Time]
)
VAR _diff =
ADDCOLUMNS ( _c, "Diff", DATEDIFF ( [a], [b], MINUTE ) )
VAR _maxindex =
MINX (
FILTER ( _diff, [Diff] > 30 && [Index] >= EARLIER ( 'Table'[Index] ) ),
[Index]
)
VAR _minindex =
MAXX (
FILTER ( _diff, [Diff] > 30 && [Index] <= EARLIER ( 'Table'[Index] ) ),
[Index]
) + 0
VAR _filtertable =
FILTER ( 'Table', [Index] >= _minindex && [Index] <= _maxindex )
VAR _count =
COUNTROWS ( FILTER ( _filtertable, [Index] <= EARLIER ( 'Table'[Index] ) ) )
RETURN
_count
Final output:
Best Regards,
Jianbo Li
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.