Tableau - 在不改变基础数据的情况下更改轴显示值

Tableau - Change axis display values without altering underlying data

我正在逐年比较两种不同产品的销售业绩。数据是从单个 SQL 服务器 table 中提取的,并通过对以下计算字段进行过滤将其分为当前年份和上一年:

IF year([Friday of Week Sold]) = YEAR(TODAY())-1 THEN 
    IF [Product Type] = "A" THEN "PY Product A"
    ELSEIF [Product Type] = "B" THEN "PY Product B"
    END
ELSEIF year([Friday of Week Sold]) = YEAR(TODAY()) THEN 
    IF [Product Type] = "A" THEN "CY Product A"
    ELSEIF [Product Type] = "B" THEN "CY Product B"
    END
END 

(受博文 here 启发的计算字段)

最终结果如下图:

我想弄清楚的是,是否有办法更改 x 轴的显示,以便它列出当前年份的周末日期而不是周数;例如将 "Week 1" 显示为“1/4/19”,"Week 2" 显示为“1/11/19”等。将数据类型更改为周不起作用,因为它会像这样将数据一分为二: 我试图让线条相互重叠,以便于用户进行比较。

我同意日期上的微小差异(2019 年第 1 周结束于 1/4/19 vs 2018 年第 1 周结束于 1/5/18)。目标是让最终用户能够快速、粗略地比较我们本周与去年的表现。

这不是最优雅的解决方案,但它有效:

if DATEPART('week',[Order Date],'Friday') = 1 Then #1/4/2019# 
ELSEIF DATEPART('week',[Order Date],'Friday') = 2 Then #1/11/2019#
ELSEIF DATEPART('week',[Order Date],'Friday') = 3 Then #1/18/2019# 
ELSEIF DATEPART('week',[Order Date],'Friday') = 4 Then #1/25/2019#
ELSEIF DATEPART('week',[Order Date],'Friday') = 5 Then #2/1/2019#
ELSEIF DATEPART('week',[Order Date],'Friday') = 6 Then #2/8/2019#
ELSEIF DATEPART('week',[Order Date],'Friday') = 7 Then #2/15/2019#
ELSEIF DATEPART('week',[Order Date],'Friday') = 8 Then #2/22/2019#
[...52...]
END

这里的缺点是它会在每个日历年进行调整以使日期与当年一致。

最终产品将要求您将您想要作为线条的度量的 YEAR() 放在颜色上(在您的情况下,嵌套 IF 可能是一个单独的计算)(在下面的示例中[利润]。)结果是每个星期的数字都被卷入上述用作维度的计算中。您需要将图表类型更改为 'Line',您可能还需要 right click the axis > rotate label