You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Tableau中统计连续状态的次数?

在Tableau中计算连续状态次数的实现方案

绝对可以实现!我经常用Tableau处理这类连续状态统计的需求,跟着下面的步骤来就能得到你想要的结果:

1. 先确保数据排序正确

连续状态是按时间顺序来统计的,所以第一步要保证你的数据是按Equipment(设备)和Date(日期)升序排列的。你可以在Tableau的数据源页面,选中这两个字段设置排序规则,或者在工作表里拖入字段后右键设置排序。

2. 创建「状态分组」计算字段

我们需要先把连续相同的状态归为同一个分组,用LOOKUP和PREVIOUS_VALUE函数来实现:

IF [Status] = LOOKUP([Status], -1) THEN PREVIOUS_VALUE(0) ELSE PREVIOUS_VALUE(0) + 1 END

这个字段的逻辑是:如果当前行的状态和上一行的状态一致,就沿用之前的分组编号;如果不一致,就生成一个新的分组编号。这样所有连续相同的状态都会被分到同一个组里。

3. 创建「连续状态次数」计算字段

接下来用LOD表达式统计每个分组内的记录数量,这样就能得到每组连续状态的次数:

{FIXED [Equipment], [状态分组] : COUNTD([WO])}

这里用COUNTD([WO])是因为工单编号是唯一标识,也可以直接用COUNT(*)来统计行数,结果是一样的。

4. 验证最终结果

把原始的Equipment、WO、Date、Status字段,加上新创建的「连续状态次数」字段拖到视图里,就能看到和你预期完全一致的结果:

WODateStatus连续状态次数
10101/jan/2021Pass2
10201/feb/2021Pass2
10301/mar/2021Fail3
10401/apr/2021Fail3
10501/may/2021Fail3
10601/jun/2021Pass1

一些注意点

  • 一定要确认Date字段被Tableau正确识别为日期类型,不然排序会乱,连续状态的分组就会出错;
  • 如果你的数据集里有多个设备,FIXED表达式里的[Equipment]是必不可少的,这样会按每个设备单独计算连续状态;
  • 就算中间有日期间隔或者工单不连续,只要状态是连续相同的,这个方法依然能准确统计。

内容的提问来源于stack exchange,提问作者Mufaddal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 19:59:04