基于一个时期过滤所有时期

Filtering for all periods based on one period

我有一个与过滤有关的画面问题。我想过滤多个 ID 和周期的特定点以上的值。假设:

ID   Date    Balance
1    2014    100
1    2015    100
1    2016    90
1    2017    80
2    2014    120
2    2015    150
2    2016    100
2    2017    90
3    2014    200
3    2015    250
3    2016    150
3    2017    50

假设我的filtervalue是130。然后tableau returns所有余额都在130以上,obiously。但是,如果第一期(2014年)的余额在130以上,我想删除所有期间的loanIDs。因此我想获得以下内容:

ID   Date    Balance
1    2014    100
1    2015    100
1    2016    90
1    2017    80
2    2014    120
2    2015    150
2    2016    100
2    2017    90

如您所见,值 150 仍然存在,但此余额是在 2015 年。感谢您的帮助!谢谢

好吧,有时候(实际上大多数时候解决方案并不明显)您需要发挥创造力才能实现您的需求。我将介绍的解决方案并不漂亮,也不是直截了当的,但它确实有效。

当我想到不明显的过滤器(例如,取 X 上的任何值)时,我喜欢想到标记、只有一个目的的计算字段,举个旗帜。

基本上,如果 2014 年的余额超过某个值,您希望此标记升起一个标志(我假设您有一个名为 'filtervalue' 的参数)。因此,您创建了标记(将其称为 'marker'):

IF YEAR([Date]) = 2014 AND [Balance] > [filtervalue]
THEN 1
ELSE 0
END

我假设 [Date] 实际上是日期或日期时间格式。如果只是年份,以数字格式,删除 'YEAR()'

现在你有了一个标记,如果 2014 年的余额超过过滤值,它将为 1,在所有其他情况下为 0(年份不是 2014 年,或者在 2014 年低于过滤值)。

现在,将 ID 拖到过滤器中,然后转到“条件”。这就是魔法发生的地方。 Select By field, [marker], Maximum, = 0。对于每个ID,它会搜索每个ID的[marker]值和select最大值,并且只保留那些等于零。意思是,如果任何地方有一个marker = 1,这个ID就会被过滤掉

希望对您有所帮助