Tableau-根据DateDiff('month',[date],Today())更改计算字段

时间:2019-02-05 18:03:45

标签: tableau

我有一个计算字段Recent Price Change设置如下:

IF DATEDIFF('month', [Posted Date], TODAY()) == 0
THEN [Price Change]
END

这应该只保留我数据集中最近一个月的价格变化,该价格每月更新一次。不幸的是,在该月的第一周,在添加新数据之前,DATEDIFF('month', [Posted Date], TODAY()) == 0的行没有为真。目前,我已将此条件替换为DATEDIFF('month', [Posted Date], TODAY()) <= 1,但我实际上只希望在最近的一个月中使用此条件。

我尝试制作一个新的计算字段Same Month,例如...

IF DATEDIFF('month', [Posted Date], TODAY()) == 0
THEN TRUE
ELSE FALSE
END

但是由于明显的原因,这没有用。我想我希望它更多地是一个全局变量,如果 any [Posted Date]满足DATEDIFF('month', [Posted Date], TODAY()) == 0,而不是计算字段,那将是正确的,但是我不知道这是否是在Tableau中可能。

另一个相关问题。我正在计算某些月份不同的零件的价格。我希望能够通过此Recent Price Change列进行过滤。如果我现在进行过滤,例如[Recent Price Change] > 10,它将仅删除最近一个月的价格数据(或根据我的临时修正,删除两个月的价格数据。)我想过滤掉价格最近变动的所有部分。超过某个美元的金额,比如说10美元。

例如,对于以下两个部分,应过滤掉所有A和C部分记录,而应保留所有B部分记录。

part     price     price change     recent price change     date
A        52        2                2                       2019-02-01 00:00:00.000
A        50        0                null                    2019-01-01 00:00:00.000
A        50        0                null                    2018-12-01 00:00:00.000
B        79        31               31                      2019-02-01 00:00:00.000
B        48        6                null                    2019-01-01 00:00:00.000
B        42        0                null                    2018-12-01 00:00:00.000
C        51        0                0                       2019-02-01 00:00:00.000
C        51        39               null                    2019-01-01 00:00:00.000
C        12        0                null                    2018-12-01 00:00:00.000

也许我的设置不正确。我愿意接受任何想法。

1 个答案:

答案 0 :(得分:1)

为了解决您的第一个问题,请不要使用今天的日期作为计算的基础,而应使用数据的最大日期。您可以使用“详细程度”计算来做到这一点。

最大日期:

{max(Posted Date]}

用途:

IF DATEDIFF('month', [Posted Date], max_date) == 0
THEN [Price Change]
END

对于第二个问题,再次使用LOD calc修复每个零件所有日期的最近价格变化。您可以在此示例中将10设置为参数,以便用户确定截止值。

{fixed [Part] : sum([Recent Price Change])}>10

这会将T / F应用于所有日期。

enter image description here

相关问题