Tableau甘特图依据TODAY()对条形左右区域分别着色的方案咨询
Tableau甘特图按今日(TODAY())拆分着色实现方法
核心逻辑是将单个任务的完整周期拆分为今日之前、今日之后两个独立分段,分别配置颜色即可实现效果,以下是兼容性最高的操作方案:
- 第一步:创建4个辅助计算字段,公式如下:
- 已完成段起始:
[任务开始日期] - 已完成段时长:
DATEDIFF('day', [已完成段起始], MIN([任务结束日期], TODAY())) - 未完成段起始:
MAX([任务开始日期], TODAY()) - 未完成段时长:
IF [任务结束日期] > TODAY() THEN DATEDIFF('day', [未完成段起始], [任务结束日期]) ELSE 0 END
如果你的甘特图时间单位不是天,将公式中'day'替换为对应单位即可(如周'week'、小时'hour')
- 已完成段起始:
- 第二步:配置甘特图视图
- 行功能区放置你原有的任务维度(如任务名称、项目分组)
- 列功能区先拖入「已完成段起始」字段,将标记类型设置为甘特条形图
- 在第一个轴对应的标记卡中:拖入「已完成段时长」到「大小」卡槽,新建一个值为「已完成」的计算字段拖到「颜色」卡槽,自定义左侧区域的展示颜色
- 把「未完成段起始」字段拖到列功能区,右键该字段选择「双轴」,再右键顶部第二个日期轴选择「同步轴」,可隐藏不需要展示的冗余轴
- 在第二个轴对应的标记卡中:同样将标记类型设置为甘特条形图,拖入「未完成段时长」到「大小」卡槽,新建一个值为「未完成」的计算字段拖到「颜色」卡槽,自定义右侧区域的展示颜色
- 第三步:细节优化
- 调整两个标记卡的大小滑块,保证两段条形高度一致
- 可将两个标记卡的「边框」设置为无,消除两段条形衔接处的分割线
- 已全部结束的任务会自动隐藏未完成段,不会出现多余的空白条形
内容的提问来源于stack exchange,提问作者Claire
相关产品推荐
相关产品推荐

