Forum Discussion
hegler23
2 years agoFrequent Visitor
Time difference and total per day and week and month
Hallo zusammen,vielleicht kann mir jemand helfen, meine Tabelle zu vervollständigen, damit ich die täglichen, wöchentlichen, monatlichen Stunden in meiner Tabelle anzeigen kann. Ziel ist es, dass ic...
- 2 years ago
Hi hegler23, as Anonymous mentioned --> your description is too poor. I would say you are looking for something like this. I've also added duration in hours in case you want to use it in excel (this will be easily convertable to minutes, days etc.)
Result:
Comment1: Tag value = Woche value = Monat value, because your sample contains only 1 date 31.3.2024.
Comment2: Duration is in [dd:hh:mm:ss] format.let fnShift = (tbl as table, col as text, shift as nullable number, optional newColName as text, optional _type as type) as table => //v 3. parametri zadaj zaporne cislo ak chces posunut riadky hore, kladne ak dole, 4. je nepovinny (novy nazov stlpca), 5. je nepovinny typ let a = Table.Column(tbl, col), b = if shift = 0 or shift = null then a else if shift > 0 then List.Repeat({null}, shift) & List.RemoveLastN(a, shift) else List.RemoveFirstN(a, shift * -1) & List.Repeat({null}, shift * -1), c = Table.FromColumns(Table.ToColumns(tbl) & {b}, Table.ColumnNames(tbl) & ( if newColName <> null then {newColName} else if shift = 0 then {col & "_Duplicate"} else if shift > 0 then {col & "_PrevValue"} else {col & "_NextValue"} )), d = Table.TransformColumnTypes(c, {List.Last(Table.ColumnNames(c)), if _type <> null then _type else type any}) in d, Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("Zc3LCQAhDEXRXrIWfCZ+MmlF7L8Nx4UwkywvHLhzEutQZaFEUjIkM7i+wTCwAbTSNdWbMuywr2nBNBNnejDVmnuNYA74Gw0GwTzeoF+zNg==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Auftrag = _t, Datum = _t, Uhrzeit = _t]), ChangedType = Table.TransformColumnTypes(Source,{{"Datum", type date}, {"Uhrzeit", type time}}, "de-DE"), GroupedRows = Table.Group(ChangedType, {"Datum"}, {{"All", each fnShift(_, "Uhrzeit", 1, null, type time), type table}}), CombinedAll = Table.Combine(GroupedRows[All]), Ad_DifDays = Table.AddColumn(CombinedAll, "Dif Days", each Duration.TotalDays(([Datum] & [Uhrzeit_PrevValue]) - ([Datum] & [Uhrzeit])), Int64.Type), Ad_DifHours = Table.AddColumn(Ad_DifDays, "Dif Hours", each [Dif Days] * 24, type number), Ad_YearMonth = Table.AddColumn(Ad_DifHours, "YearMonth", each Number.From(Date.ToText([Datum], "yyyyMM")), Int64.Type), Ad_YearWeek = Table.AddColumn(Ad_YearMonth, "YearWeek", each Date.Year([Datum]) * 100 + Date.WeekOfYear([Datum], Day.Monday), Int64.Type), GroupedRowsMonat = Table.Group(Ad_YearWeek, {"YearMonth"}, {{"Monat Duration", each Duration.From(List.Sum([Dif Days])), type number}, {"Monat Hours", each List.Sum([Dif Hours]), type number}, {"All", each _, type table}}), ExpandedMonat = Table.ExpandTableColumn(GroupedRowsMonat, "All", List.RemoveMatchingItems(Table.ColumnNames(Ad_YearWeek), Table.ColumnNames(GroupedRowsMonat))), GroupedRowsWoche = Table.Group(ExpandedMonat, {"YearWeek"}, {{"Woche Duration", each Duration.From(List.Sum([Dif Days])), type number}, {"Woche Hours", each List.Sum([Dif Hours]), type number}, {"All", each _, type table}}), ExpandedWoche = Table.ExpandTableColumn(GroupedRowsWoche, "All", List.RemoveMatchingItems(Table.ColumnNames(ExpandedMonat), Table.ColumnNames(GroupedRowsWoche))), GroupedRowsTag = Table.Group(ExpandedWoche, {"Datum"}, {{"Tag Duration", each Duration.From(List.Sum([Dif Days])), type number}, {"Tag Hours", each List.Sum([Dif Hours]), type number}, {"All", each _, type table}}), ExpandedTag = Table.ExpandTableColumn(GroupedRowsTag, "All", List.RemoveMatchingItems(Table.ColumnNames(ExpandedWoche), Table.ColumnNames(GroupedRowsTag))), RemovedOtherColumns = Table.SelectColumns(ExpandedTag,{"Auftrag", "Datum", "Uhrzeit", "Tag Duration", "Tag Hours", "Woche Duration", "Woche Hours", "Monat Duration", "Monat Hours"}), ChangedType2 = Table.TransformColumnTypes(RemovedOtherColumns,{{"Auftrag", Int64.Type}, {"Datum", type date}, {"Uhrzeit", type time}, {"Tag Duration", type duration}, {"Tag Hours", type number}, {"Woche Duration", type duration}, {"Woche Hours", type number}, {"Monat Duration", type duration}, {"Monat Hours", type number}}) in ChangedType2
hegler23
2 years agoFrequent Visitor
Wie kann ich meine Datei anhängen?