如何在PowerBI中实现单台机器最近10个process order的独立折线图展示?
PowerBI实现单机器最近10个工单独立折线图展示方案
步骤1:添加工单序号计算列
首先给每个机器的工单按时间排序,标记出"最近第N个工单"的序号。在数据模型中新建计算列,DAX公式如下:
工单序号 = RANKX( FILTER('生产数据表', '生产数据表'[机器名称] = EARLIER('生产数据表'[机器名称])), '生产数据表'[工单结束时间], // 替换为你用来判断工单先后的时间字段(如开始时间) , DESC, Dense )
- 逻辑:按机器名称分组,对每个机器下的工单按时间倒序排名,最近完成的工单序号为1,次近为2,以此类推。
步骤2:创建10个工单速度度量值
为每个序号的工单单独创建度量值,用于对应折线图的Y轴数据。以第1个工单为例,DAX公式:
第1工单机器速度 = VAR 当前机器最大工单序号 = MAXX( FILTER('生产数据表', '生产数据表'[机器名称] = SELECTEDVALUE('生产数据表'[机器名称])), '生产数据表'[工单序号] ) RETURN IF(1 <= 当前机器最大工单序号, CALCULATE(MAX('生产数据表'[machine speed]), '生产数据表'[工单序号] = 1), BLANK() )
复制上述公式,将其中的1依次替换为2到10,生成"第2工单机器速度"至"第10工单机器速度"共9个度量值。
- 逻辑:先判断当前选中机器的工单总数是否大于等于N,是则返回对应工单的机器速度,否则返回空值(避免无数据时显示乱线)。
步骤3:创建并配置10个折线图
- 插入10个独立的折线图视觉对象,按需排列布局。
- 对每个折线图进行配置:
- X轴:选择
生产数据表[timestamp]字段 - Y轴:选择对应的"第N工单机器速度"度量值(第一个图选第1个,第二个选第2个,以此类推)
- 标题:修改为"最近第N个工单机器速度趋势"(N对应1-10)
- X轴:选择
- 添加机器名称切片器,设置为单选模式(确保每次仅选择一台机器)。
步骤4:优化无数据时的显示
如果某台机器的工单不足10个,对应序号的折线图会显示空白。可通过以下方式优化:
- 选中空白折线图,在"格式"面板的"视觉对象"->"常规"中,开启"隐藏空白视觉对象"(需PowerBI版本支持此功能)。
- 或在视觉对象标题中添加动态文本,结合度量值判断显示"无数据"提示。
内容的提问来源于stack exchange,提问作者DS_Geek
相关产品推荐
相关产品推荐

