示例 1:将维度筛选器转换为上下文筛选器
本示例以及以下示例使用 Tableau Desktop 附带的“Sample – Superstore”数据源。
在此示例中,视图解决以下问题:按总销售额计,纽约市位居前 10 名的客户有哪些?
视图包含两个维度筛选器,一个您在“筛选器”对话框的“常规”选项卡上创建的筛选器,以及另一个在“前 N 个”选项卡上创建的筛选器。问题在于,这些筛选器是同时执行的,而您希望常规筛选器在“前 N 个”筛选器之前应用,以便“前 N 个”筛选器可对常规筛选器预先筛选的结果进行操作。解决方案是将其中一个筛选器重新定义为上下文筛选器,以便建立清晰的优先级顺序。
下面是用于构建此视图的步骤。
-
将“Sales”(销售额)拖到“列”。
-
将“City”(城市)和“[Customer Name]”([客户名称])拖到“行”。
-
再次从“数据”窗格中拖出“City”(城市),这次将其拖到“筛选器”。在“筛选器”对话框的“常规”选项卡上,将筛选器设置为仅显示单一值:“New York City”(纽约市)。通过单击“无”然后选择“New York City”(纽约市)可达到此目的。
这将创建一个常规维度筛选器。
-
单击工具栏上的“降序排序”按钮 (
)。视图现在将如下所示:
![](https://img-blog.csdnimg.cn/img_convert/a4905c9992dcc4bfaec03defc4d6ab8a.png)
注意列表中的前几个名称:Ashbrook、Fuller、Vernon 等。
-
现在将“[Customer Name]”([客户名称])从“数据”窗格拖到“筛选器”,并创建一个“前 10 个”筛选器,以仅显示按总销售额计的前 10 名客户。
![](https://img-blog.csdnimg.cn/img_convert/1ce1e3935266ee6653f7de51c1dc7f1e.png)
应用了这第二个筛选器后,视图看起来是正确的,但您会注意到显示的名称与之前不再相同:
![](https://img-blog.csdnimg.cn/img_convert/080a45c7c6e48bf70271d1c93f8a0485.png)
之前位于第二位的 Peter Fuller 发生了什么情况?目标是显示纽约市的前 10 名客户,但现在视图实际显示的是总体的前 10 名客户。
问题在于“前 N 个”筛选器和常规维度筛选器是同时应用的 — 它们都是维度筛选器,并且按 Tableau 操作顺序出现在同一位置:
![](https://img-blog.csdnimg.cn/img_convert/adf50c7a92112a6246f100419f16b38a.png)
解决方案是向上下文中添加(针对“City”(城市)的)常规维度筛选器 — 也就是说,将其转换为一个上下文筛选器,该筛选器将先于在工作表中创建的任何其他筛选器执行。
有关详细信息,请参见使用上下文筛选器提高视图性能。
-
在“筛选器”功能区上右键单击(在 Mac 上按住 Control 单击)“City”(城市),并选择“添加到上下文”。作为上下文筛选器,此筛选器现在优先于维度筛选器,因此视图现在将按预期方式显示:
![](https://img-blog.csdnimg.cn/img_convert/4ce35d600635f65a1caf568ca62a5ca6.png)