如何在Tableau中按name分组、timestamp排序后对比activity列相邻行值?
在Tableau中实现分组排序并检查相邻行activity值是否相同的方法
完全可行,按以下步骤操作即可:
1. 完成分组与排序
- 将「name」字段拖至行功能区或标记卡-详细信息,实现按name分组;
- 将「timestamp」字段拖至行功能区(放在name字段后方),或右键点击视图中的timestamp字段选择「排序」,设置为升序/降序,确保每个name组内的数据按时间戳顺序排列。
2. 创建表计算字段检测相邻行activity
步骤1:获取下一行的activity值
创建计算字段(命名为下一行activity),公式为:
LOOKUP(ATTR([activity]), 1)
ATTR([activity])确保每行的activity为单一值(避免聚合冲突);LOOKUP(...,1)表示取当前行的下一行对应值。
步骤2:对比当前行与下一行的activity
再创建计算字段(命名为activity是否与下一行相同),公式为:
IF [activity] = [下一行activity] THEN '相同' ELSE '不同' END
若需要布尔结果,可简化为:
[activity] = [下一行activity]
3. 配置表计算的计算范围
右键点击上述计算字段,选择「编辑表计算」:
- 计算依据选择「高级」;
- 分区依据添加「name」(确保每个name组内独立计算);
- 排序依据添加「timestamp」(保证按时间顺序取上下行);
- 点击确定完成配置。
4. 查看结果
将activity是否与下一行相同字段拖至标记卡-文本或颜色,即可在视图中看到每个name组内,当前行activity与下一行是否相同的判断结果。
注意:若存在相同timestamp的行,可添加次要排序依据(比如其他唯一标识字段)确保排序逻辑稳定;需确保视图为明细级别(取消聚合)才能显示每行的判断结果。
内容的提问来源于stack exchange,提问作者Laurynas G
相关产品推荐
相关产品推荐

