Tableau api 表计算-使用IF语句?-人构成的画面或场景

Tableau api 表计算-使用IF语句?-人构成的画面或场景,tableau-api,Tableau Api,我们只有年初至今的数据。我一直想让MTD在桌子上运行。 所以我想我可以运行一个表格计算类型——“与上个月的差异” 除一年中的第一个月外,这项功能运行良好。 一月平均日=一月至年初至今,而非一月至年初至今减去十二月至年初至今 所以一月份的数字永远都不对 如果month=“Jan”不执行表格计算,有没有办法说 问候 Gem你可能有 ZN(SUM([YTD])) - LOOKUP(ZN(SUM([YTD])),-1) 然后,对于第一个条目,LOOKUP()将返回null。您所需要做的就是使用ZN()

我们只有年初至今的数据。我一直想让MTD在桌子上运行。 所以我想我可以运行一个表格计算类型——“与上个月的差异”

除一年中的第一个月外,这项功能运行良好。 一月平均日=一月至年初至今,而非一月至年初至今减去十二月至年初至今 所以一月份的数字永远都不对

如果month=“Jan”不执行表格计算,有没有办法说

问候
Gem

你可能有

ZN(SUM([YTD])) - LOOKUP(ZN(SUM([YTD])),-1)
然后,对于第一个条目,LOOKUP()将返回null。您所需要做的就是使用ZN()返回0

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

编辑:我知道你有一个更大的问题,那就是你的滚动总和每年都会重新开始。在这种情况下,你真的需要一个IF语句,但它可以克服你的“开始月份不总是一样”的问题。您只需检查该月是列表中的第一个月还是12个月的倍数:

IIF(-FIRST()%12 = 0,
ZN(SUM([YTD])),
ZN(SUM([YTD])) - LOOKUP(ZN(SUM([YTD])), -1))
您只需要理解FIRST()函数。它将返回从当前位置到起始位置的距离。所以,如果你在二月开始,八月一号()将返回-6。 模运算符将保证您每12个月重新启动一次

感谢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月至今

但我现在唯一的问题是,如果你在一月以外的一个月开始谈判。。。二月。 二月MTD不是二月YTD?? (这是另一个问题,我的报告将连续12个月发布)。。。(2月至1月,3月至2月)


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

我想我现在明白了,让我就我的答案获得一些建议
IIF(min(month([period_date]))=1,
ZN(SUM([YTD])),
ZN(SUM([YTD])) - LOOKUP(ZN(SUM([YTD])), -1))