首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用过滤器和参数显示完整的数据集- Tableau 10

用过滤器和参数显示完整的数据集- Tableau 10
EN

Stack Overflow用户
提问于 2017-12-11 04:48:46
回答 3查看 499关注 0票数 1

下面我有一组数据。

代码语言:javascript
复制
| AdviserName | PolicyNumber | Product | Status | Duration |
|-------------|--------------|---------|--------|----------|
| Andy        | LIF123       | ANZ     | New    | 2        |
| Andy        | X224         | AXA     | Lapsed | 3        |
| George      | KL1122       | TAL     | New    | 0        |
| George      | OLK43        | AXA     | Lapsed | 5        |
| Ben         | LIF98        | ANZ     | New    | 0        |
| Ben         | KL343        | TAL     | Lapsed | 1        |

我想得到一组数据,其中的状态=“失效”的持续时间在1到3之间,但是我仍然希望为每个顾问显示相应的状态= 'New‘。下面是我希望看到的预期结果。

代码语言:javascript
复制
| AdviserName | PolicyNumber | Product | Status | Duration |
|-------------|--------------|---------|--------|----------|
| Andy        | LIF123       | ANZ     | New    | 2        |
| Andy        | X224         | AXA     | Lapsed | 3        |
| Ben         | LIF98        | ANZ     | New    | 0        |
| Ben         | KL343        | TAL     | Lapsed | 1        |

我创建了两个参数:

  • 值设置为1的MinYear
  • 值设置为3的MaxYear

我创建了两个计算字段:

  • MinInvYear,即iif([Duration]>=[Min Year] and [Status] = 'Lapsed', 1, 0)
  • MaxInvYear,即iif([Duration]<=[Max Year] and [Status] = 'Lapsed', 1, 0)

最后一步,我将计算出的两个字段放入过滤器中,并只勾选filter =1。不幸的是,我得到的是下面的表格。我也需要为安迪和本展示“新”的状态。

代码语言:javascript
复制
| AdviserName | PolicyNumber | Product | Status | Duration |
|-------------|--------------|---------|--------|----------|
| Andy        | X224         | AXA     | Lapsed | 3        |
| Ben         | KL343        | TAL     | Lapsed | 1        |

我试图使用详细级别来修改计算的字段:

MinInvYear,也就是{include [Status] = 'New Business' : iif([Duration]>=[Min Year] and [Status] = 'Lapsed', 1, 0)}和我收到了错误消息:“一个详细表达式的结果必须是聚合的。”

我遗漏了什么?

我在用Tableau 10。

谢谢大家的帮助。

EN

回答 3

Stack Overflow用户

发布于 2017-12-12 10:33:51

与两个计算字段( MinInvYearMaxInvYear )不同,尝试添加一个计算字段(例如Filter for Status and Duration),它根据条件返回一个布尔值

代码语言:javascript
复制
IF ([Status] == 'Lapsed' OR ([MinYear] < [Duration] AND [Duration] < [MaxYear])) THEN
    TRUE
ELSE
    FALSE
END

现在,为这个计算出的字段添加一个过滤器,只显示结果为True的记录。

票数 0
EN

Stack Overflow用户

发布于 2017-12-12 11:23:09

试试这个,有点长,但确实有效:

您只对字段状态的一个方面(失效)进行操作,因此只对该值应用参数值。因此,在这里,您需要独立地处理该列以获得所需的输出。遵循以下程序:

  1. 在status列中为每个值创建2组:

集合1:Lapsed

代码语言:javascript
复制
Here create a set and just select checkbox `Lapsed`.

集合2:New

代码语言:javascript
复制
Here create a set and just select checkbox `New`.
  1. 创建两个计算字段,分别提取LapsedNew所需的数据

计算字段1:Lapsed_Status

代码语言:javascript
复制
IF [Duration] >= [Min] and [Duration] <= [Max]
THEN [Lapsed] //Set
END

计算字段2:New Status

代码语言:javascript
复制
IF [New]=[New]
THEN [New] //Set
END
  1. 在两个计算字段中再创建两个集合(在步骤2中创建),只选择在工作表上显示所需的值:

集合3:Display_Lapsed //来自计算字段1:New Status

代码语言:javascript
复制
Select checkbox True

集合4:Display_New //来自计算字段2:Lapsed_Status

代码语言:javascript
复制
Select checkbox True
  1. 现在我们有了2组所需的数据,再创建一个计算字段,并在过滤器中使用。

计算字段“Display_sheet”

代码语言:javascript
复制
Display_Lapsed <> Display_New //Both are sets
  1. 在筛选器中使用计算字段Display_sheet并选择true
  2. 使用工作表上所需的字段显示数据。

让我知道是怎么回事

票数 0
EN

Stack Overflow用户

发布于 2017-12-12 13:17:33

下面的特技会让你动起来

  • 复制具有上述数据的数据源(右键单击“data”面板中的“->”重复“)
  • AdviserName从原始数据源拖动到“行”视图中
  • 单击“数据”面板中的复制数据源。在那里,你会发现“链接符号”旁边的每一个维度(灰色)。点击AdviserName旁边的“链接符号”,它就会变成“红色”(如果它变成灰色,不要担心。再点击一次,就会变成红色)。确保只有一个‘链接符号’是红色的(这是旁边的AdviserName)。
  • 在此重复数据源中创建计算字段filter_cond,如
代码语言:javascript
复制
IF [Status]='Lapsed' and [Duration]<=3 and [Duration]>=1
then 'Y'
ELSE 'N'
END
  • 在“筛选器”视图中拖动filter_cond并选择“Y”
  • 现在将PolicyNumberProductStatus从原始数据源拖到“Rows”视图中。你完蛋了!

瞧!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47746588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档