表格计算 - 使用IF语句? - Tableau

时间:2014-10-01 06:58:05

标签: tableau

我们只有YTD数据。我一直在尝试让MTD在桌面上运行。 所以我认为我可以运行一个表计算类型 - "差异来自"上个月。

除了一年中的第一个月以外,这种情况很有效。 Jan MTD = Jan YTD NOT Jan YTD Dec YTD 所以一月的数字永远不对。

有没有办法说,如果月份=" Jan"不执行表计算?

问候 宝石

2 个答案:

答案 0 :(得分:2)

你可能有像

这样的东西
ZN(SUM([YTD])) - LOOKUP(ZN(SUM([YTD])),-1)

然后,对于第一个条目,LOOKUP()将返回null。您需要做的就是使用ZN()

返回0
ZN(SUM([YTD])) - ZN(LOOKUP(ZN(SUM([YTD])),-1))

如果您不知道,您需要转到编辑表计算...,然后编辑公式......

编辑:我知道你有一个更大的问题,那就是你的滚动金额每年重启。在这种情况下,你真的需要一个IF声明,但有可能克服你的'#34;它并不总是相同的开始月份"问题。您只需要检查该月份是列表中的第一个月份还是12个月份的倍数:

IIF(-FIRST()%12 = 0,
ZN(SUM([YTD])),
ZN(SUM([YTD])) - LOOKUP(ZN(SUM([YTD])), -1))

您只需了解FIRST()函数即可。它将返回从当前位置到起始位置的距离。所以,如果你从2月开始,8月First()将返回-6。 模数运算符将保证您每12个月重启一次

答案 1 :(得分:0)

谢谢Inox。 你是对的。

但是我打算更像这样:

IIF(min(month([period_date]))=1,
ZN(SUM([YTD])),
ZN(SUM([YTD])) - LOOKUP(ZN(SUM([YTD])), -1))

由于公式是一个聚合,我不得不使用" min"为了约会。这是我使用IIF功能的问题,这在我的问题中并不明显。

这将产生超过1年的MTD,当它达到1月2日时,它不会减去12月的年初。

我现在唯一的问题是,如果你在一月以外的一个月开始表...即2月。 2月MTD不是2月YTD ?? (这是另一个问题,我的报告是生产一个滚动的12个月)...即2月到1月,3月到2月)

到目前为止,我只是花了两年时间来克服这个问题,因此迫使它在1月开始。不是真正的解决方案,但它可以在12个月内获得信息。