Power BI如何为存在New状态的PO编号所有行填充Y标记新列
Power BI按PO分组标记含New状态的实现方法
方法1:DAX计算列(适用于数据模型层操作)
直接在对应表中新建计算列,粘贴以下DAX公式即可,注意替换公式内的表名为你自己的表名:
新增状态标记 = IF( CALCULATE( COUNTROWS('你的表名'), ALLEXCEPT('你的表名', '你的表名'[PO Number]), '你的表名'[Status] = "New" ) > 0, "Y", "" )
逻辑说明:通过ALLEXCEPT保留PO Number的筛选上下文,统计当前PO下Status为New的行数,只要行数大于0就标记为Y,否则留空,完全匹配需求逻辑。
方法2:Power Query自定义列(适用于数据清洗加载阶段操作)
进入Power Query编辑器,添加自定义列,粘贴以下M公式即可,注意替换公式内的上一步步骤名为你当前操作的上一步步骤名称:
if List.Contains(Table.SelectRows(#"上一步步骤名", (x)=>x[PO Number] = [PO Number])[Status], "New") then "Y" else ""
效果验证样例
| PO Number | Status | 含"New"状态 | 新增状态标记? |
|---|---|---|---|
| 10000 | New | Y | Y |
| 10000 | Closed | Y | |
| 10000 | Open | Y | |
| 10000 | New | Y | Y |
| 10000 | Waiting | Y | |
| 10001 | New | Y | Y |
| 10001 | Open | Y | |
| 10001 | New | Y | Y |
| 10002 | Waiting | ||
| 10002 | Open | ||
| 10002 | Closed |
内容的提问来源于stack exchange,提问作者Ashley
相关产品推荐
相关产品推荐

