gpt4 book ai didi

powerbi - 根据连续列数据对行进行分组

转载 作者:行者123 更新时间:2023-12-02 01:45:32 24 4
gpt4 key购买 nike

我在 PowerBi 中有一个具有以下结构的数据集表:

Dataset Table Structure

这非常简单; “持续时间”列是“日期时间结束”和“日期时间开始”之间的秒数差异。

我需要创建一个可视化(表格/矩阵),它会给我这个结果:

Table Visualization

基本上,它是一种基于“事件代码”列的连续值的“产品”和“机器”列的分组,其中我保留第一行“日期时间开始”和最后一行“日期时间结束”,总和行“持续时间(s)”值(或重新计算,因为它始终是时间差异)并计算“行计数”列中具有相同“事件代码”的连续行。

由于数据集相当大(5m+行),我更喜欢基于 Dax 的解决方案而不是基于 M 的解决方案,但任何都足够了。

最佳答案

这是 M 版本。不知道这么多记录的表现如何。我在 Table.Buffer 中陷入了一个似乎有意义的时刻

基本上,它创建一个产品&机器&事件的组合列,然后向下偏移该行。通过将偏移量与当前行值进行比较,我们找到中断的位置并放置索引。填写索引,您就有了可以分组的内容。

let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Added Index" = Table.AddIndexColumn(Source, "Index", 0, 1, Int64.Type),
#"Added Custom" = Table.AddColumn(#"Added Index", "Combo", each [Product]&[Machine]&[Event Code]),
#"Changed Type" = Table.Buffer(Table.TransformColumnTypes(#"Added Custom",{{"Product", type text}, {"Machine", type text}, {"Event Code", type text}, {"DateTime Start", type datetime}, {"DateTime End", type datetime}, {"Duration (s)", Int64.Type}})),

// pull combined Product&Machine&Event cell from prior row
shiftedList = {null} & List.RemoveLastN(#"Changed Type"[Combo],1),
custom1 = Table.ToColumns(#"Changed Type") & {shiftedList},
custom2 = Table.FromColumns(custom1,Table.ColumnNames(#"Changed Type") & {"Previous Row"}),

#"Added Custom1" = Table.AddColumn(custom2, "Custom", each if [Previous Row]=null then [Index] else if [Combo]=[Previous Row] then null else [Index]),
#"Filled Down" = Table.FillDown(#"Added Custom1",{"Custom"}),
#"Grouped Rows" = Table.Group(#"Filled Down", {"Custom"}, {
{"Product", each [Product]{0} },
{"Machine", each [Machine]{0}},
{"Event Code", each [Event Code]{0}},
{"DateTime Start", each List.Min([DateTime Start]), type datetime},
{"DateTime End", each List.Max([DateTime End]), type datetime},
{"Duration (s)", each List.Sum([#"Duration (s)"]), type nullable number},
{"Rows Count", each Table.RowCount(_), Int64.Type}
}),
#"Removed Columns" = Table.RemoveColumns(#"Grouped Rows",{"Custom"})
in #"Removed Columns"

enter image description here

如果您不将“持续时间”列包含在其中,然后在最后一步中单独计算,可能会更快

关于powerbi - 根据连续列数据对行进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70974445/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com