powerbi - 筛选 Power Query 中的列,使其仅包含每年的最后一个日期
解决方案
尝试这个
添加自定义列以拉出年份
= Date.Year([EndDate])
添加自定义列以提取每个匹配年份的最大日期
= (i)=>List.Max(Table.SelectRows(#"Added Custom" , each [Year]=i[Year]) [EndDate])
添加自定义列以检查两个日期
= if [EndDate]=[MaxDate] then "keep" else "remove"
过滤该列
let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"EndDate", type date}}),
#"Added Custom" = Table.AddColumn(#"Changed Type", "Year", each Date.Year([EndDate])),
#"Added Custom2" = Table.AddColumn(#"Added Custom","MaxDate",(i)=>List.Max(Table.SelectRows(#"Added Custom" , each [Year]=i[Year]) [EndDate]), type date ),
#"Added Custom1" = Table.AddColumn(#"Added Custom2", "Custom", each if [EndDate]=[MaxDate] then "keep" else "remove"),
#"Filtered Rows" = Table.SelectRows(#"Added Custom1", each ([Custom] = "keep"))
in #"Filtered Rows"
~ ~ ~
对于较大的列表,另一种方法可能更好
添加自定义列以拉出年份
= Date.Year([EndDate])
按年分组并取 EndDate 列的最大值
使用左外连接和过滤器将其合并回原始数据
let Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"EndDate", type date}}),
#"Added Custom" = Table.AddColumn(#"Changed Type", "Year", each Date.Year([EndDate])),
#"Grouped Rows" = Table.Group(#"Added Custom", {"Year"}, {{"MaxDate", each List.Max([EndDate]), type date}}),
#"Merged Queries" = Table.NestedJoin(#"Changed Type",{"EndDate"}, #"Grouped Rows" ,{"MaxDate"},"Table2",JoinKind.LeftOuter),
#"Expanded Table2" = Table.ExpandTableColumn(#"Merged Queries", "Table2", {"MaxDate"}, {"MaxDate"}),
#"Filtered Rows" = Table.SelectRows(#"Expanded Table2", each ([MaxDate] <> null))
in #"Filtered Rows"
推荐阅读
- drools - drools rule to relate two facts without eval
- python - 如何在 Django Admin 中动态覆盖 list_filter 字段?
- javascript - 在多个 SVG 画布中拖放
- javascript - 如何在特定的 div 标签中显示传单地图?
- php - Symfony4:KnpSnappy/WkHtmlToPdf 的问题
- stormcrawler - StormCrawler 可以爬取文件系统而不是 URL 吗?
- javascript - 如何检查 Chrome 窗口是否聚焦?
- sql - 如何从 BigQuery 表中获取表/列统计信息
- excel - VBA 代码需要根据工作表 2 范围内的单元格名称来复制和重命名工作表(工作表 1)
- java - 将 REST API 的 404 响应更改为 200 空响应