下面我有一组数据。
| 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‘。下面是我希望看到的预期结果。
| 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 |我创建了两个参数:
MinYearMaxYear我创建了两个计算字段:
MinInvYear,即iif([Duration]>=[Min Year] and [Status] = 'Lapsed', 1, 0)MaxInvYear,即iif([Duration]<=[Max Year] and [Status] = 'Lapsed', 1, 0)最后一步,我将计算出的两个字段放入过滤器中,并只勾选filter =1。不幸的是,我得到的是下面的表格。我也需要为安迪和本展示“新”的状态。
| 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。
谢谢大家的帮助。
发布于 2017-12-12 10:33:51
与两个计算字段( MinInvYear和MaxInvYear )不同,尝试添加一个计算字段(例如Filter for Status and Duration),它根据条件返回一个布尔值
IF ([Status] == 'Lapsed' OR ([MinYear] < [Duration] AND [Duration] < [MaxYear])) THEN
TRUE
ELSE
FALSE
END现在,为这个计算出的字段添加一个过滤器,只显示结果为True的记录。
发布于 2017-12-12 11:23:09
试试这个,有点长,但确实有效:
您只对字段状态的一个方面(失效)进行操作,因此只对该值应用参数值。因此,在这里,您需要独立地处理该列以获得所需的输出。遵循以下程序:
集合1:Lapsed
Here create a set and just select checkbox `Lapsed`.集合2:New
Here create a set and just select checkbox `New`.Lapsed和New所需的数据计算字段1:Lapsed_Status
IF [Duration] >= [Min] and [Duration] <= [Max]
THEN [Lapsed] //Set
END计算字段2:New Status
IF [New]=[New]
THEN [New] //Set
END集合3:Display_Lapsed //来自计算字段1:New Status
Select checkbox True集合4:Display_New //来自计算字段2:Lapsed_Status
Select checkbox True计算字段“Display_sheet”
Display_Lapsed <> Display_New //Both are setsDisplay_sheet并选择true让我知道是怎么回事
发布于 2017-12-12 13:17:33
下面的特技会让你动起来
AdviserName从原始数据源拖动到“行”视图中AdviserName旁边的“链接符号”,它就会变成“红色”(如果它变成灰色,不要担心。再点击一次,就会变成红色)。确保只有一个‘链接符号’是红色的(这是旁边的AdviserName)。filter_cond,如IF [Status]='Lapsed' and [Duration]<=3 and [Duration]>=1
then 'Y'
ELSE 'N'
ENDfilter_cond并选择“Y”PolicyNumber、Product和Status从原始数据源拖到“Rows”视图中。你完蛋了!瞧!
https://stackoverflow.com/questions/47746588
复制相似问题