平时利用Tableau自带的筛选器进行筛选时,每一次操作筛选器,视图都会进行一次查询,如果有大量数据或复杂的计算,其性能会大幅降低。Ken Flerlage大神给我们提供了一个利用参数动作,制作提交按钮,实现多条件筛选的方法。
![310b04509ee1de53daf7a40a631f5033.png](https://i-blog.csdnimg.cn/blog_migrate/f011257278f7cdc59158fde9341ec52d.png)
https://public.tableau.com/profile/ken.flerlage#!/vizhome/ParameterApplyButton/Menu
上面这个例子略微复杂了一点,我们利用Tableau自带的超市数据,做一下简单的演示,只使用两个筛选条件。
创建计算字段
打开超市数据,我们只定义开始日期和结束日期。
新建四个参数
Start Date Input
![4c10f669da87c481be7070810e24f9b2.png](https://i-blog.csdnimg.cn/blog_migrate/ee12547c1054c83edb890661ec4b432e.png)
Start Date Final(同上)
End Date Input
![e92dc17acc941f0b0c425c1a441caf0c.png](https://i-blog.csdnimg.cn/blog_migrate/99a40f6df72641ffe0e857dff9c4c546.png)
End Date Final(同上)
新建一个计算字段
Data Filter=
IF [订单日期]>=[Start Date Final] and [订单日期]<=[End Date Final]then
TRUE
ELSE
FALSE
END
随便新建一个工作表视图,命名为“图表”,保证[Data Filter]筛选器为“真”。
![8369c2485b1706a6b1c39014591cd422.png](https://i-blog.csdnimg.cn/blog_migrate/a9a1df0e5929962c581eefec1cfa3b40.png)
新建按钮
下面这个方法是一种通用的创建开关按钮的方法。
新建数据源,并导入Toggle表
Toggle
1
2
新建计算字段
Toggle Next=IF [Toggle]= 1 then 2 ELSE 1 END
用这个字段达到开关效果。
按下图,创建工作表,命名为“按钮”
![c081a73f4ee0809052ab8940480c2cff.png](https://i-blog.csdnimg.cn/blog_migrate/99fd67e4b513de55462ed74d72bd8340.png)
形状[Toggle]的值1和2,在这个例子中应该选择一样的图形。但为了顺便演示开关的效果,我选择不同的形状。
创建仪表板
- 新增筛选器
![6c7e512938509d389555d2ca56543611.png](https://i-blog.csdnimg.cn/blog_migrate/5694bb2a9e7718eb02212b0eb28f7d41.png)
这个筛选器,保证了开关按钮的动态效果。
新增参数动作 start date input
![63a3254b61351095877564e97d02c3ce.png](https://i-blog.csdnimg.cn/blog_migrate/f710faeef6ddc516b9e714834bbe0c8e.png)
新增参数动作 end date input
![64eaa168ec400bedfa8d3067cdc5f212.png](https://i-blog.csdnimg.cn/blog_migrate/9657e8092d3d879de174b34fc37d4cff.png)
通过这两个筛选器,把[Input]的值传给[Final],[Final]的值又影响了[Data Filter],从而达到了同时视图筛选的目的。
制作一个仪表板,在[Input]输入值,点击开关按钮,[Final]会相应变换,表格也会跟着变换。
![d3ce4baac22e78daa634e26e18f75b15.png](https://i-blog.csdnimg.cn/blog_migrate/d63f57cf17bd48348935571916c2f9d2.png)
很简单,快去试试吧。
特别提示:这个例子中,由于只是参数和参数之间传递数据,所以用两个数据源是可以的。但是如果是计算字段和参数之间传递数据,新建的Toggle表就需要与原数据做并集,形成一张表,其他步骤不变。
![821c05694361a5cb10b797fad1f3dff4.png](https://i-blog.csdnimg.cn/blog_migrate/71b4ecaeb3e040d4cdf87933b8c94ed6.png)
------END------