Power BI中使用Power Query筛选年/月最大日期对应行的方法
在Power BI中筛选每个年/月日期最大行的实现方法
方法一:Power Query快速筛选(推荐,数据清洗阶段完成)
- 打开Power BI,选中目标数据集,点击主页选项卡的编辑查询进入Power Query编辑器
- 点击添加列选项卡,选择自定义列,输入以下公式:
将新列命名为[日期] = Date.EndOfMonth([日期])是否当月最后一天 - 点击
是否当月最后一天列的筛选箭头,只勾选True,确定后即可保留每个年月日期最大的行 - 选中
是否当月最后一天列,右键选择删除,然后点击关闭并上载,替换原数据集
方法二:Power Query分组保留行
如果需要更灵活的分组逻辑(比如按自定义年月规则分组),可以用分组方法:
- 进入Power Query编辑器,为
日期列生成年月标识:- 添加自定义列,输入公式:
Date.Year([日期]) * 100 + Date.Month([日期]),命名为年月编码
- 添加自定义列,输入公式:
- 点击转换选项卡的分组依据,设置:
- 分组依据:选择
年月编码 - 新列名:输入
分组数据 - 操作:选择所有行
- 分组依据:选择
- 添加自定义列,输入公式提取每组的最大日期行:
Table.Max([分组数据], "日期") - 删除
年月编码和分组数据列,点击新生成自定义列的展开箭头,选择全部列展开,最后关闭并上载
方法三:DAX创建计算表(建模阶段实现)
如果不想修改原数据集,可通过DAX生成筛选后的新表:
- 点击建模选项卡的新建表,输入以下DAX公式(替换
原表为你的数据集名称):筛选后表 = VAR 年月最大日期 = SUMMARIZE( '原表', YEAR('原表'[日期]) AS 年份, MONTH('原表'[日期]) AS 月份, "当月最大日期", MAX('原表'[日期]) ) RETURN NATURALINNERJOIN('原表', 年月最大日期) - 按回车确认,即可得到仅包含每个年月最大日期行的新表
内容的提问来源于stack exchange,提问作者chris_olv
相关产品推荐
相关产品推荐

