Tableau与null之间的聚合混合

时间:2014-10-29 22:32:56

标签: tableau

我想使用仅包含一部分ID的辅助数据源为图表着色:

我有一个主要数据源,它将项目与开始日期和大量供应商相关联 - 项目可能有许多供应商。我有一个辅助数据源,它将我的供应商的一个子集链接到一个排名,指示他们所在的层。

我想按项目年份制作区域图表,并通过着色详细信息显示供应商层级的细分。由于项目可能涉及许多供应商,我想按照所涉及的任何供应商的最高层(例如最大(层))为每个项目着色。不应在我的辅助数据源中的供应商应被分配最低层(0)。

我的辅助来源中有一个计算字段,它会生成一个代表排名等级的数字(排名较低,排名优于无排名):

Tier: if isnull([rank]) then 0 else if [rank] >= 200 then 2 else 1

在我的主要版本中,我定义了另一个计算字段,按层进行每个项目的聚合:

VendorClass: if max[Secondary].[tier] == 0 then "Low vendors" elseif max[Secondary].[tier] == 2 'Top Vendors' else 'Mid Vendors'

但是,当我尝试绘制项目ID与VendorClass的不同计数时,我看到每个项目都获得相同的VendorClass('Top')。

我怀疑这是由VendorClass字段丢弃项目导致的,在辅助项中存在空值,尽管计算字段尝试将空值转换为0。

任何帮助表示赞赏.....

更新

所以这是我的表格:

主要来源:

项目: project_id | name | date_started | etc. 123 | project1 | 2009-01-01 456 | project2 | 2010-01-01 789 | project3 | 2010-06-01

供应商: vendor_id | name | address | etc. 1 | Foo | main st 2 | Bar | state st 3 | Fob | church st 4 | Bof | broadway

项目厂商 project_id | vendor_id 123 | 1 123 | 2 456 | 2 456 | 3 456 | 4 789 | 3 789 | 4

次要来源: vendor_id | rank | tier 1 | 1 | 2 2 | 200 | 1

注意:我可以从我的数据源传递层或将其计算为辅助中的字段 - 无关紧要 - 但关键是不应将此表中的供应商(例如3和4)分配给层0.由于供应商数量和问题保持同步,将每个供应商添加到此数据源是不切实际的。

我想要一个图表显示每年不同项目的总数,但我希望每个案例的着色代表该项目中任何供应商的最高层:

2009年有一个项目,2个供应商,其中最大层数为2(供应商1),所以它是第1列单位,例如蓝色为第2层。

2010年有两个项目。 456的最大层数为1(供应商2),789的最大层数为0(供应商3和4),因此2010年的列高2列,例如第1层为绿色,第1层为绿色,例如,第0层为红色。

2 个答案:

答案 0 :(得分:0)

尝试在主数据源中定义层计算字段(引用辅助数据中的字段)

要查看引用其他数据源中字段的语法,请使用计算编辑器中字段下的下拉菜单选择您需要引用的数据源。

它必须是一个聚合计算,这意味着计算的行为取决于viz上的维度,因为它们决定了分区。

答案 1 :(得分:0)

在上面的示例中不需要您的混合。尝试用联接替换混合,这样将简化计算。