原文地址:http://www.tableaulearners.com/top-n-and-bottom-n-view-in-tableau/
这篇文章是帮助你如何在整个数据集中建立Top and Nottom N的方法,而不是从数据子集中。 在这里,我们将在同一工作表中创建两个条形图,一个显示前5个值,另一个显示底部5值。
问题描述:
假设我们有大量客户数据希望用根据销售额来可视化Top N and Bottom N客户,你可能会发现将显示的信息量限制为重要的记录子集可以更有效地帮助你处理和回答有关问题。
重现步骤:
让我们使用示例文件Sample - Superstore Sales(Excel)。打开一个新工作表,然后选择Sample - Superstore Sales(Excel)作为数据源。
加载数据后,执行以下步骤以获得所需结果:
Step 1:
使用Superstore Sales连接,创建一个显示每个客户的销售总额的基本条形图。
Step 2:
将[sales]添加到列功能区,将[Customer]添加到行功能区。
Step 3:
在创建计算字段之前,让我们创建一个参数,允许用户在具有不同变量的视图之间快速切换。
Step 4:
创建两个计算字段,如下所示。
Top N filter: Rank_Unique (Sum (Measure)) <= [User Defined Parameter]
Bottom N filter: Rank_Unique (-Sum (Measure)) <= [User Defined Parameter]
Rank_Unique: 根据计算排名的方向,为重复值赋予唯一排名。
让我们使用相同的数据创建Excel工作表,然后将其用作表格数据源。
Step 5:
拖拽Top N filter and Bottom N filter 到行功能区. 这两个布尔公式比较了客户排名,该排名有助于按销售额排序前五名客户的真假条件。
我们可以将这两个公式组合成一个公式
Step 1:
我们也可以通过几种不同的方式完成Top N or Bottom N:
一种是使用表计算过滤器INDEX () and SIZE (),另一种是用集. 在行功能区中拖动这两个计算字段,我们可以实现这一点。在这种情况下,SIZE()返回域的成员总数。
Step 2:
使用以下公式创建计算字段[Top N – Bottom N] (这里要说明客户一定要按照销售额排序排序,要不index返回的值就不对了)
[Top N – Bottom N]:
If INDEX () <= [Select N Values] THEN "Top N Values" ELSEIF INDEX ()>= (SIZE () - [Select N Values]) THEN "Bottom N Values"
ELSE "Others"
END
Step 3:
拖动 [Top N – Bottom N]计算字段,然后选中“Top N Values”和“Bottom N Values”复选框并单击“确定”。
使用集合可能是Top / Bottom问题的首选解决方案。一个原因是,与表计算过滤器不同,集合的成员在数据源中计算,因此应该更有效。虽然它不会与几百个数据点产生太大的差别。
Step 1:
右键点击“Customer Name” 创建集.
Step 2:
建立一个TOP N VALUE的集,转到“顶部”过滤器选项卡,用参数定义值的范围,用销售额总计计算。(调用参数控件[Select N values],可以根据需要动态值)
Step 3:
同样方法建立一个BOTTOM N VALUE的集。
Step 4:
现在又两个集,一个TOP N VALUE,另一个BOTTOM N VALUE。按住Ctrl键并单击两个集>右键单击>创建组合集,然后选择“ 两个集中的所有成员”
Step 5:
现在,您可以将此新设置[TOP&BOTTOM VALUES]拖动到筛选功能区,您可以看到所需的结果。
此篇文章已发布到我的公众号:saodisir,有兴趣也可关注一下