优阅达 | Tableau 微课堂(27):筛选最高位和前 N 位

發布於: 2021-06-01

筛选最高位和前 N 位

筛选最高位,先从多维度分解情景:

如果我们想要按各区域的销售额来筛选前十位产品,则此分析可从两方面解释:前十位的全部产品在各区域的排名如何(情景1),或,在各区域哪些产品排名在前十位(情景2)。

 情景一:根据筛选“销售额”,查看全部产品在各区域的排名情况

第一个情景题相当简单,如下图所示:

右键单击筛选器,并选择“筛选”,然后单击“排行榜选项卡”,我们看到的,是按销售额筛选的前十位产品ID。

 情景二:如何查看在各区域排名前十位的产品?

 但如果尝试回答第二个情景题:在各区域,哪些产品排在前十位。

则我们可能不禁会构建此处的视图,然后将“区域”放置在“筛选”条件中,并选择所感兴趣的任何区域。

但是,此视图似乎会做出不正确的响应。尽管产品ID筛选只是按销售额筛选的前十位,但我们只看到七行。这其实是关于如何运行筛选的问题。

 一、如何运行筛选?

如果您熟悉SQL,应该了解,筛选条件是通过"AND"的语句写入"WHERE"查询子句中。记录需满足返回的全部条件。

对于此处顶部的条形图,结果必须涉及按销售额筛选的所有产品中的前十位。

(1)根据区域类别来进行筛选

如果我们也按区域筛选,筛选项必须也是相关区域内销售的产品。如果在前十位产品中,十分之三不在西部区域销售范围内,则总结果子集将只包含7个产品。这回答了第二个情景题。

(2)如何得到单个区域的前十个产品数据?

如果希望只筛选西部区域的前十位产品,则设置会稍微复杂点。我们需要指示Tableau必须先考虑区域因素,再计算前十位数据。

我们可以创建区域上下文筛选器,但此上下文筛选器在我们需要依次查看东部、西部等区域数据的情况下很难进行更改。

如果分析需要各区域前十位产品的单独数据,则可以通过Index计算。基于各区域内的销售额来设置各产品的排序。

这基本上会将"AND"的条件从筛选条件中移除,并将使用排序代替。

右键单击数据窗口,然后选择创建计算字段,将此计算字段命名为排序。在公式区域,进入Index(),单击确认。

在此处的数据窗口中,查找新建的排序字段,右键单击并选择“转换为离散”。此步骤很关键。

将排序字段插在视图中的两个相关字段之间,我们会将其插在“区域”和“产品ID”字段之间。

右键单击排序胶囊,然后选择编辑表计算。

我们在此处指示 Tableau 如何计算指数,换句话说,指示我们希望 Tableau 如何分配排序。

针对计算依据,选择高级。

将区域和产品ID放到寻址框,确保我们希望按区域筛选排序的字段位于顶部。

将排序字段设置为“销售额”,因为我们希望,按销售额筛选出前十位。

且我们希望降序排序,单击确认。

此处,将所在级别设置为产品ID,因为我们希望按产品ID分配排序,并将重新启动间隔设置为“区域”,因为我们希望重新计算各区域的排序。

排序已正确分配。

因此我们需要设置筛选器,需要考虑几方面:

将区域加到筛选器中,然后选择西部。

排序计算取决于区域计算。因此,如果我们不先按区域筛选,就无法安排序筛选。也就是说,可能有四个产品都排在第一位,每个区域一个,我们必须指示Tableau,我们希望查看哪个重新启动间隔或区域。

按住ctrl键,并单击拖动,将复制的排序从行功能区拖放到筛选器中,由于我们之前专门在此胶囊编辑过表计算,因此必须复制此胶囊,并将其拖放到筛选功能区。

选择1-10,并进行排序。

现在,由于按区域进行排序,我们获得有关西部区域前十位销售项目的数据。

如果我们希望更改要查看的区域,只需添加快速筛选器。 

二、如何筛选前N位?

我们希望筛选前N位,而不是键入筛选前10位或前20位产品的条件。那如果让查看者设置临界值,将会怎样?

我们需要用筛选维度的排行榜选项和一个参数,将想要筛选的“产品ID”字段拖放到功能区,并单击排行榜选项卡。

在此处单击“按字段”,该字段已设置为按销售额总计,我们将单击并选择“创建新参数”,而不是在此处设置固定值10。

我们以“前N位”命名,其他项保持不变。 

参数控件自动添加到视图中,并且我们只需拖动滑块,即可调整希望查看的产品数量。

本节 Tableau 微课堂到此结束,感谢你的耐心阅读。

下节课将带你学习参数 。