table 中的 Power Query 最大值
Power Query MAX Value from a table
我试图通过电源查询将 table 的最大日期转换为不同的日期。目前我被卡住了,我得到的只是一个基于条件的 table 。不确定这是否清楚,所以我将用代码进行解释。这是我目前的代码:
let
Source = Table.NestedJoin(Table.NestedJoin(SKU,{"SKU"},q_UltColh_NEW,{"SKU"},"qUltColh_NEW",JoinKind.LeftOuter),{"SKU"},r_STK,{"SKU"},"Rep_Stk", JoinKind.LeftOuter),
.
.
.
#"Expanded Origem" = ...
#"Expanded Origem" = Table.ExpandTableColumn(#"Merged Queries", "Origem", {"Desc_ORI", "Parent_ORI"}, {"Origem.Desc_ORI", "Origem.Parent_ORI"}),
#"Added Last_Rec" = Table.AddColumn(#"Expanded Origem", "Last_Rec", each
let SKU = [SKU]
in Table.SelectRows(r_GOODSREC,each [SKU]=SKU)
)
in
#"Added Last_Rec"
我有两个 table:
SKU Desc
46_24_ ABC
103_5_ DEF
doc_DATE RowNo SKU Cod_ART QTT
10/01/2017 1 46_24_ 46.24 50
14/01/2017 1 46_24_ 46.24 100
14/01/2017 1 103_5_ 103.5 50
16/01/2017 1 103_5_ 103.5 100
我想得到:
SKU Desc Last_Entry Qtt
46_24_ ABC 14/01/2017 50
103_5_ DEF 16/01/2017 100
我的代码返回一个 table 包含多个列:
SKU 描述 Last_Entry
46_24_ 美国广播公司 Table
103_5_防御Table
我相信一旦我得到最大值我就可以扩展 table,除非你告诉我这是个坏主意。
非常感谢,
我用下面的代码得到了这个:
备注:
1.我的日期格式是 month/day/year 而你的是 day/month/year.
2。此外,在您的问题中,您显示 SKU 46_24_ 的预期 QTT 为 50;但是您的来源 table 有 100 作为 SKU 46_24_ 最新日期的 QTT,这就是为什么我的 table 有 100 而不是 50.
我使用了与您相同的两个起始 table。我称它们为 Table1 和 Table2。 (表 1 是只有 SKU 和 Desc 列的表。)
然后我使用左外连接将这两个 table 合并到一个名为 Merge1 的新 table 中。
我想重点是:
我使用 "Group By"(即 Table.Group)按每个 SKU 进行分组,并在我称为 Last_Entry 的列中获取其最大日期值,并将所有行数据包含在我称之为 AllData 的专栏。这是分组依据弹出窗口 window:
然后,在 Group By 之后,我扩展了 AllData 中嵌入的 table 并添加了一个新列来标记和过滤掉 doc_Date 不等于 [=47= 的行].
let
Source = Table.NestedJoin(Table1,{"SKU"},Table2,{"SKU"},"Table2",JoinKind.LeftOuter),
#"Expanded Table2" = Table.ExpandTableColumn(Source, "Table2", {"doc_Date", "RowNo", "SKU", "Cod_ART", "QTT"}, {"doc_Date", "RowNo", "SKU.1", "Cod_ART", "QTT"}),
#"Changed Type" = Table.TransformColumnTypes(#"Expanded Table2",{{"doc_Date", type date}}),
#"Grouped Rows" = Table.Group(#"Changed Type", {"SKU"}, {{"Last_Entry", each List.Max([doc_Date]), type datetime}, {"AllData", each _, type table}}),
#"Expanded AllData1" = Table.ExpandTableColumn(#"Grouped Rows", "AllData", {"Desc", "doc_Date", "QTT"}, {"Desc", "doc_Date", "QTT"}),
#"Added Custom" = Table.AddColumn(#"Expanded AllData1", "Custom", each if[Last_Entry]=[doc_Date] then "Last_Entry" else "NotLast_Entry"),
#"Filtered Rows" = Table.SelectRows(#"Added Custom", each ([Custom] = "Last_Entry")),
#"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"Custom", "doc_Date"}),
#"Reordered Columns" = Table.ReorderColumns(#"Removed Columns",{"SKU", "Desc", "Last_Entry", "QTT"})
in
#"Reordered Columns"
我试图通过电源查询将 table 的最大日期转换为不同的日期。目前我被卡住了,我得到的只是一个基于条件的 table 。不确定这是否清楚,所以我将用代码进行解释。这是我目前的代码:
let
Source = Table.NestedJoin(Table.NestedJoin(SKU,{"SKU"},q_UltColh_NEW,{"SKU"},"qUltColh_NEW",JoinKind.LeftOuter),{"SKU"},r_STK,{"SKU"},"Rep_Stk", JoinKind.LeftOuter),
.
.
.
#"Expanded Origem" = ...
#"Expanded Origem" = Table.ExpandTableColumn(#"Merged Queries", "Origem", {"Desc_ORI", "Parent_ORI"}, {"Origem.Desc_ORI", "Origem.Parent_ORI"}),
#"Added Last_Rec" = Table.AddColumn(#"Expanded Origem", "Last_Rec", each
let SKU = [SKU]
in Table.SelectRows(r_GOODSREC,each [SKU]=SKU)
)
in
#"Added Last_Rec"
我有两个 table:
SKU Desc
46_24_ ABC
103_5_ DEF
doc_DATE RowNo SKU Cod_ART QTT
10/01/2017 1 46_24_ 46.24 50
14/01/2017 1 46_24_ 46.24 100
14/01/2017 1 103_5_ 103.5 50
16/01/2017 1 103_5_ 103.5 100
我想得到:
SKU Desc Last_Entry Qtt
46_24_ ABC 14/01/2017 50
103_5_ DEF 16/01/2017 100
我的代码返回一个 table 包含多个列:
SKU 描述 Last_Entry
46_24_ 美国广播公司 Table
103_5_防御Table
我相信一旦我得到最大值我就可以扩展 table,除非你告诉我这是个坏主意。
非常感谢,
我用下面的代码得到了这个:
备注:
1.我的日期格式是 month/day/year 而你的是 day/month/year.
2。此外,在您的问题中,您显示 SKU 46_24_ 的预期 QTT 为 50;但是您的来源 table 有 100 作为 SKU 46_24_ 最新日期的 QTT,这就是为什么我的 table 有 100 而不是 50.
我使用了与您相同的两个起始 table。我称它们为 Table1 和 Table2。 (表 1 是只有 SKU 和 Desc 列的表。)
然后我使用左外连接将这两个 table 合并到一个名为 Merge1 的新 table 中。
我想重点是:
我使用 "Group By"(即 Table.Group)按每个 SKU 进行分组,并在我称为 Last_Entry 的列中获取其最大日期值,并将所有行数据包含在我称之为 AllData 的专栏。这是分组依据弹出窗口 window:
然后,在 Group By 之后,我扩展了 AllData 中嵌入的 table 并添加了一个新列来标记和过滤掉 doc_Date 不等于 [=47= 的行].
let
Source = Table.NestedJoin(Table1,{"SKU"},Table2,{"SKU"},"Table2",JoinKind.LeftOuter),
#"Expanded Table2" = Table.ExpandTableColumn(Source, "Table2", {"doc_Date", "RowNo", "SKU", "Cod_ART", "QTT"}, {"doc_Date", "RowNo", "SKU.1", "Cod_ART", "QTT"}),
#"Changed Type" = Table.TransformColumnTypes(#"Expanded Table2",{{"doc_Date", type date}}),
#"Grouped Rows" = Table.Group(#"Changed Type", {"SKU"}, {{"Last_Entry", each List.Max([doc_Date]), type datetime}, {"AllData", each _, type table}}),
#"Expanded AllData1" = Table.ExpandTableColumn(#"Grouped Rows", "AllData", {"Desc", "doc_Date", "QTT"}, {"Desc", "doc_Date", "QTT"}),
#"Added Custom" = Table.AddColumn(#"Expanded AllData1", "Custom", each if[Last_Entry]=[doc_Date] then "Last_Entry" else "NotLast_Entry"),
#"Filtered Rows" = Table.SelectRows(#"Added Custom", each ([Custom] = "Last_Entry")),
#"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"Custom", "doc_Date"}),
#"Reordered Columns" = Table.ReorderColumns(#"Removed Columns",{"SKU", "Desc", "Last_Entry", "QTT"})
in
#"Reordered Columns"