如何在Power Query中按年份与补丁版本生成新旧标识列?
在Power Query中新增「Patch Type」列的实现方法
针对你提供的表格数据,按Year分组后标记每组内Patch版本的新旧,这里提供两种简洁的实现方法:
方法一:分组后匹配标记(直观易理解)
- 把数据导入Power Query编辑器
- 按「Year」列分组:
- 切换到「转换」选项卡,点击「分组依据」
- 分组配置:
- 分组依据:选择
Year列 - 新列名:填
Grouped - 操作:选择
所有行 - 点击确定完成分组
- 分组依据:选择
- 添加自定义列标记新旧:
- 切换到「添加列」选项卡,点击「自定义列」
- 输入以下公式,点击确定:
let groupData = [Grouped], sortedPatches = Table.Sort(groupData,{{"Patch", Order.Ascending}}), oldVersion = sortedPatches{0}[Patch], newVersion = sortedPatches{1}[Patch] in if [Patch] = oldVersion then "old" else "new"
- 右键删除多余的
Grouped列,完成操作
方法二:用排名函数直接标记(更高效)
不需要分组,直接通过排名函数判断每组内的Patch顺序:
- 数据导入Power Query编辑器后,点击「添加列」→「自定义列」
- 输入以下公式(注意把
#"源"替换成你实际的步骤名称,比如如果之前有筛选步骤就用对应的步骤名):if Table.Rank( #"源", {"Year", "Patch"}, [Order.Ascending, Order.Ascending], [RankKind = RankKind.Competition] ){[Year=[Year], Patch=[Patch]]}[Rank] = 1 then "old" else "new" - 确认生成的「Patch Type」列符合预期后,关闭编辑器加载数据
最终效果
| Year | Patch | Value | Patch Type |
|---|---|---|---|
| 2021 | 1.68 | 23.5 | old |
| 2021 | 1.70 | 25.5 | new |
| 2022 | 1.75 | 21.5 | old |
| 2022 | 1.79 | 24.5 | new |
| 2023 | 1.84 | 25.5 | old |
| 2023 | 1.89 | 28.5 | new |
内容的提问来源于stack exchange,提问作者AzUser1
相关产品推荐
相关产品推荐

