PowerBI中如何对duration数字列统一移除末尾三位0
实现方案
方案1:Power Query 预处理(推荐)
这是数据清洗阶段最优方案,修改后直接作用于原始数据模型,后续计算性能更好:
- 打开Power BI Desktop,点击「转换数据」进入Power Query编辑器
- 在左侧查询列表找到你要处理的数据表
- 选中
duration列,点击顶部菜单栏「转换」选项卡 -> 选择「标准」->「除以」 - 在弹出的输入框中输入
1000,点击确定即可
如果需要兼容非1000整数倍的数值,保留截断最后三位的逻辑,可以添加自定义列,填入公式:= Number.RoundDown([duration]/1000, 0)
方案2:DAX 计算列
如果不需要修改原始数据源,只想新增列使用,可以直接在数据视图新建计算列,公式如下:
处理后duration = INT([duration] / 1000)
如果需要规避极端异常值,可以使用更安全的除法函数:
处理后duration = INT(DIVIDE([duration], 1000))
效果验证
和你给出的示例完全匹配:
- 原始值
91442000处理后输出:91442 - 原始值
6000处理后输出:6 - 原始值
3450000处理后输出:3450
注意事项
如果你的duration列存在末尾不足三位0、或者非1000整数倍的数值,上述方案会自动截断最后三位数值,如果你需要保留小数结果,直接去掉取整函数(Number.RoundDown/INT)即可。
内容的提问来源于stack exchange,提问作者A B
相关产品推荐
相关产品推荐

