Tableau中按年月筛选后IT工单开/关单日期计数错误问题
解决IT工单可视化中开单日期筛选器导致关单计数错误的问题
问题概述
- 制作IT工单可视化报表,核心需求是统计每月开单数量和关单数量,涉及核心字段:开单日期(Open date)、关单日期(Closed date)
- 基于开单日期创建
MMMM YYYYY格式的日期筛选器后,关单计数出现偏差:例如某工单2022年12月21日开单、2023年2月15日关单,当筛选2023年(1-2月)时,该工单的关单记录被排除,导致关单计数偏低;只有同时选中2022年12月,才能得到正确的关单统计结果。
原因分析
当前筛选器直接基于开单日期过滤整行数据:当开单日期不在筛选范围内时,包含该日期的工单整行数据都会被移除,即便其关单日期处于筛选范围内,也无法被纳入关单计数统计。
解决方案
方案1:创建独立日期维度表(推荐)
这是BI可视化中处理多日期字段筛选的标准方案,能彻底解决跨日期范围的统计问题:
- 生成一个覆盖所有可能日期范围的独立日期表,包含
MMMM YYYYY格式的日期分组字段(可通过Power Query或DAX生成) - 将工单表的开单日期、关单日期分别与日期表的日期字段建立非活动关系
- 编写DAX度量值,通过激活对应关系来分别统计开单和关单数量:
开单数量 = CALCULATE(COUNT('工单表'[工单ID]), USERELATIONSHIP('工单表'[开单日期], '日期表'[日期])) 关单数量 = CALCULATE(COUNT('工单表'[工单ID]), USERELATIONSHIP('工单表'[关单日期], '日期表'[日期])) - 使用日期表的
MMMM YYYYY字段作为筛选器,此时筛选逻辑会同时作用于开单和关单的统计,不会遗漏跨年度的关单记录。
方案2:调整关单计数度量值(快速修复)
若不想新建日期表,可修改关单计数的度量值,让它忽略开单日期的筛选限制:
关单数量 = CALCULATE( COUNT('工单表'[工单ID]), ALL('工单表'[开单日期]), DATESBETWEEN( '工单表'[关单日期], MIN('筛选日期表'[日期]), MAX('筛选日期表'[日期]) ) )
注:筛选日期表指基于开单日期创建的筛选器对应的日期表;若直接使用开单日期字段作为筛选器,可替换为'工单表'[开单日期]并调整日期范围逻辑。
内容的提问来源于stack exchange,提问作者Satish tamang
相关产品推荐
相关产品推荐

