Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
6 years ago
Solved

Group measure into date ranges

I have one table with dates of a part repair and another table with operating times. Is there any way I can create a measure to find the total of operating time between repairs? I'd need a way to cre...
  • dax's avatar
    dax
    6 years ago

    Hi BolaSquirrel,

    You could try to use M code to see whether it work or not

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("ZY1BDsAgCAT/wtkEAS3pW4z//0YTW6jIdbKzMwY0KMCVbiQkhlkC4ZfwRvoiZISRMtFoOfFnQYoTSTdicZfaJ/mkmyQ/4Ro31ynpmdaUVkvLRgTmfAA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [rig = _t, date = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"rig", Int64.Type}, {"date", type date}}),
        #"Added Index" = Table.AddIndexColumn(#"Changed Type", "Index", 0, 1),
        #"Grouped Rows" = Table.Group(#"Added Index", {"rig"}, {{"all", each _, type table [rig=number, date=date, Index=number]}}),
        #"Added Custom" = Table.AddColumn(#"Grouped Rows", "Custom", each Table.AddIndexColumn([all],"newc",1,1)),
        #"Expanded Custom" = Table.ExpandTableColumn(#"Added Custom", "Custom", {"date", "newc"}, {"date", "newc"}),
        #"Removed Columns" = Table.RemoveColumns(#"Expanded Custom",{"all"}),
        #"Replaced Value" = Table.ReplaceValue(#"Removed Columns",each [newc],each if [rig]=1 then [newc] else null,Replacer.ReplaceValue,{"newc"}),
        #"Sorted Rows" = Table.Sort(#"Replaced Value",{{"date", Order.Ascending},{"rig", Order.Ascending}}),
        #"Filled Down" = Table.FillDown(#"Sorted Rows",{"newc"}),
        #"Filled Up" = Table.FillUp(#"Filled Down",{"newc"})
    in
        #"Filled Up"

    Best Regards,
    Zoe Zhi

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.