Power BI多条件查询次大值:获取DIVUCHIM_MONE表同一工单对应上一条Id
Power BI 实现同一工单上一条ID查询方案
以下两种方案都可以实现你要的效果,新手优先选DAX计算列方案,操作门槛更低。
方法1:DAX 新增计算列(推荐)
操作路径:进入报表视图 -> 选中DIVUCHIM_MONE表 -> 点击顶部「新建列」-> 粘贴下方代码即可
Id_Before = VAR CurrentWO = DIVUCHIM_MONE[work_order] VAR CurrentId = DIVUCHIM_MONE[Id] // 筛选同工单、ID小于当前ID的所有记录,取最大ID即为上一条记录ID VAR MaxPreId = CALCULATE(MAX(DIVUCHIM_MONE[Id]), FILTER(ALL(DIVUCHIM_MONE), DIVUCHIM_MONE[work_order] = CurrentWO && DIVUCHIM_MONE[Id] < CurrentId)) // 无前置记录时返回0 RETURN IF(ISBLANK(MaxPreId), 0, MaxPreId)
运行后直接生成的Id_Before列和你给出的预期结果完全一致。
方法2:Power Query 实现(适合数据加载阶段预处理)
操作步骤:
- 进入Power Query编辑器,选中
DIVUCHIM_MONE表 - 点击「分组依据」,设置:新列名=分组表,操作=所有行,分组依据=work_order
- 新增自定义列,输入公式:
Table.AddIndexColumn(Table.Sort([分组表], {"Id", Order.Ascending}), "序号", 1, 1, Int64.Type) - 展开自定义列中的Id、序号字段
- 再新增自定义列,输入公式:
try #"扩展后的表名"[Id]{[序号]-2} otherwise 0(注意把表名替换成你自己上一步生成的表名) - 删除多余的中间字段后加载回模型即可。
内容的提问来源于stack exchange,提问作者user3306637
相关产品推荐
相关产品推荐

