PowerBI中如何判断行是否为值首次出现并做唯一性标记
PowerBI标记重复值首次出现的实现方法
注意:PowerBI不存在Excel默认的工作表行顺序,你必须先给表添加一个索引列来锁定你要的行排序逻辑,否则计算出来的首次出现标记可能和你预期的顺序不符。
方法1:Power Query编辑器实现(推荐,数据清洗阶段处理性能更好)
操作步骤如下:
- 打开Power Query编辑器,选中目标数据表,点击顶部「添加列」选项卡,选择「索引列」→「从1」,生成用于确定行顺序的索引列
- 再次点击「添加列」→「自定义列」,在弹出的公式框中输入如下M语言代码:
if [索引] = List.Min(Table.SelectRows(#"添加的索引列的步骤名", (x)=> x[Book Number] = [Book Number])[索引]) then 1 else 0
替换说明:将公式中的#"添加的索引列的步骤名"替换为你上一步添加索引列的实际步骤名称(可在Power Query右侧的「应用步骤」面板中查看对应步骤名),如果你的书号列名不是Book Number也对应替换即可
- 将生成的自定义列重命名为
Unique or not,删除多余的索引列,加载回数据模型即可使用
方法2:DAX计算列实现(适合不需要调整Power Query流程的场景)
操作步骤如下:
- 先按照方法1的第一步添加索引列并加载到数据模型中
- 在报表视图右侧的字段面板,右键点击目标表,选择「新建列」,输入如下DAX公式:
Unique or not = VAR CurrentBook = '你的表名'[Book Number] VAR CurrentIndex = '你的表名'[索引] VAR MinIndex = CALCULATE(MIN('你的表名'[索引]), ALLEXCEPT('你的表名', '你的表名'[Book Number])) RETURN IF(CurrentIndex = MinIndex, 1, 0)
替换说明:将你的表名替换为你实际的数据表名称即可
内容的提问来源于stack exchange,提问作者Ronit Sharma
相关产品推荐
相关产品推荐

