Excel 或 Power Query:Merge/Lookup 最近的上一个日期
Excel or Power Query: Merge/Lookup Closest Previous Date
大家:
我有一个 table 这些日期:
我有另一个 table,其中包含日期和所有者列表:
我需要 merge/join 这两个 table 以便交易日期与最近的上一个开始日期相匹配,因此它看起来像这样:
我尝试将 XLOOKUP 与“-1”一起使用,但这是一个问题,因为 XLOOKUP 检索了交易日期为 4/16/2017(有 2 个匹配项)的第一条记录,而且我无法在 Power Query 上合并,因为那里没有确切的日期匹配。还有别的办法吗?
谢谢。
假设此 table 名为 Table4,您首先需要分组,因为 e 和 f 的日期重复。
let
Source = Excel.CurrentWorkbook(){[Name="Table4"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Start Date", type text}, {"Owner", type text}}),
#"Changed Type with Locale" = Table.TransformColumnTypes(#"Changed Type", {{"Start Date", type date}}, "en-US"),
#"Grouped Rows" = Table.Group(#"Changed Type with Locale", {"Start Date"}, {{"All", each _, type table [Start Date=nullable date, Owner=nullable text]}})
in
#"Grouped Rows"
假设此 table 名为 Table3,然后您可以按照
所述添加自定义列
这个table的代码是
let
Source = Excel.CurrentWorkbook(){[Name="Table3"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Transaction Dates", type text}}),
#"Changed Type with Locale" = Table.TransformColumnTypes(#"Changed Type", {{"Transaction Dates", type date}}, "en-US"),
#"Added Custom" = Table.AddColumn(#"Changed Type with Locale", "Custom", (i) => Table.Last( Table.Sort( Table.SelectRows(Table4,each [Start Date] <= i[Transaction Dates]),{"Start Date", Order.Ascending}))),
#"Expanded Custom" = Table.ExpandRecordColumn(#"Added Custom", "Custom", {"Start Date", "All"}, {"Custom.Start Date", "Custom.All"}),
#"Expanded Custom.All" = Table.ExpandTableColumn(#"Expanded Custom", "Custom.All", {"Owner"}, {"Owner"})
in
#"Expanded Custom.All"
大家:
我有一个 table 这些日期:
我有另一个 table,其中包含日期和所有者列表:
我需要 merge/join 这两个 table 以便交易日期与最近的上一个开始日期相匹配,因此它看起来像这样:
我尝试将 XLOOKUP 与“-1”一起使用,但这是一个问题,因为 XLOOKUP 检索了交易日期为 4/16/2017(有 2 个匹配项)的第一条记录,而且我无法在 Power Query 上合并,因为那里没有确切的日期匹配。还有别的办法吗?
谢谢。
假设此 table 名为 Table4,您首先需要分组,因为 e 和 f 的日期重复。
let
Source = Excel.CurrentWorkbook(){[Name="Table4"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Start Date", type text}, {"Owner", type text}}),
#"Changed Type with Locale" = Table.TransformColumnTypes(#"Changed Type", {{"Start Date", type date}}, "en-US"),
#"Grouped Rows" = Table.Group(#"Changed Type with Locale", {"Start Date"}, {{"All", each _, type table [Start Date=nullable date, Owner=nullable text]}})
in
#"Grouped Rows"
假设此 table 名为 Table3,然后您可以按照
这个table的代码是
let
Source = Excel.CurrentWorkbook(){[Name="Table3"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Transaction Dates", type text}}),
#"Changed Type with Locale" = Table.TransformColumnTypes(#"Changed Type", {{"Transaction Dates", type date}}, "en-US"),
#"Added Custom" = Table.AddColumn(#"Changed Type with Locale", "Custom", (i) => Table.Last( Table.Sort( Table.SelectRows(Table4,each [Start Date] <= i[Transaction Dates]),{"Start Date", Order.Ascending}))),
#"Expanded Custom" = Table.ExpandRecordColumn(#"Added Custom", "Custom", {"Start Date", "All"}, {"Custom.Start Date", "Custom.All"}),
#"Expanded Custom.All" = Table.ExpandTableColumn(#"Expanded Custom", "Custom.All", {"Owner"}, {"Owner"})
in
#"Expanded Custom.All"