Tableau Desktop中按年度计算布尔列占比并展示失败日期范围
Tableau新手需求:计算成功率与失败日期范围展示
我刚接触Tableau Desktop,现有数据集如下:
| Country | State | Date | Success |
|---|---|---|---|
| INDIA | MH | 2023/01/01 | True |
| INDIA | MH | 2023/01/02 | False |
| INDIA | KA | 2023/01/02 | False |
| USA | OR | 2023/01/01 | True |
| USA | NY | 2023/01/15 | False |
需要创建满足以下功能的仪表板:
- 支持用户通过年份筛选器选择年份,按Country、State计算该年度内的Success Ratio(成功数据点占总数据点的百分比)
- 新增列展示对应Country、State在指定年度内Success为False的日期范围,示例效果如下:
| Country | State | Success Ratio | Failure dates |
|---|---|---|---|
| INDIA | MH | 73% | 01/15-03/20, 04/01-04/15, 05/07, 06/08 |
| INDIA | KA | 73% | 02/15-03/25, 04/01, 04/25-05/07, 06/09 |
| US | WA | 25% | 05/25-08/28, 09/12 |
| US | NY | 48% | 11/01 - 12/20, 12,24 |
实现步骤
一、数据准备:提取年份字段
- 在Tableau数据窗格中,右键点击
Date字段,选择创建 > 计算字段 - 命名为
Year,输入计算逻辑:YEAR([Date]),点击确定。该字段用于后续年份筛选。
二、计算Success Ratio(成功率)
- 创建计算字段
Success Ratio,输入:
注:若数据无重复日期,用SUM(IF [Success] = TRUE THEN 1 ELSE 0 END) / COUNTD([Date])COUNT([Date])即可;若存在重复日期,用COUNTD([Date])统计唯一数据点 - 将该字段拖到视图中,右键选择默认属性 > 数字格式,设置为百分比(保留整数)。
三、生成失败日期范围(核心步骤)
通过多个计算字段实现连续失败日期的合并:
1. 标记连续失败组
创建计算字段Failure Group,输入:
IF [Success] = FALSE THEN RUNNING_SUM(IF DATEADD('day', -1, [Date]) = LOOKUP([Date], -1) THEN 0 ELSE 1 END) END
该字段会将连续的失败日期归为同一个组。
2. 提取每组失败的起始日期
创建计算字段Failure Start Date,输入:
IF [Success] = FALSE THEN MIN([Date]) OVER (PARTITION BY [Country], [State], [Year], [Failure Group]) END
3. 提取每组失败的结束日期
创建计算字段Failure End Date,输入:
IF [Success] = FALSE THEN MAX([Date]) OVER (PARTITION BY [Country], [State], [Year], [Failure Group]) END
4. 格式化日期范围文本
创建计算字段Failure Range Text,输入:
IF [Failure Start Date] = [Failure End Date] THEN FORMAT_DATE('%m/%d', [Failure Start Date]) ELSE FORMAT_DATE('%m/%d', [Failure Start Date]) + '-' + FORMAT_DATE('%m/%d', [Failure End Date]) END
单日期显示为mm/dd,连续日期显示为mm/dd-mm/dd。
5. 合并所有失败范围为单行文本
创建计算字段Failure Dates,输入:
STR_AGG([Failure Range Text], ', ') OVER (PARTITION BY [Country], [State], [Year])
注:若使用Tableau版本低于2020.2,STR_AGG不可用,可改用表计算结合MAKESTRING实现,但STR_AGG操作更简洁。
四、构建视图与仪表板
- 将
Country、State拖到行(或列),Year拖到筛选器,设置为单值下拉或多选,允许用户选择年份。 - 将
Success Ratio拖到文本标记卡,确认百分比格式正确。 - 将
Failure Dates拖到文本标记卡,与Success Ratio放在同一视图中。 - 调整视图布局,隐藏多余字段,匹配示例显示效果。
- 将工作表拖到仪表板,添加标题后完成制作。
内容的提问来源于stack exchange,提问作者Neel Vasa
相关产品推荐
相关产品推荐

