Tableau:按字符串自定义分组

时间:2016-08-29 19:27:56

标签: tableau

我的数据看起来像这样:

Drug name:
Methylphenidate
Methylphenidate
Acetaminophen
Ritalin
Ritalin
Tylenol
Tylenol

我希望画面将“利他林”视为“哌醋甲酯”,将“泰诺”视为“对乙酰氨基酚”用于所有目的。我理想地希望有人能指出我的菜单或计算字段脚本,在那里我可以写出一长串的字符串替换。完整的数据集将有大约50个这样的变化。

对于这个例子,我试图计算处方哌醋甲酯/利他林的次数,以及处方乙酰氨基酚/泰诺的次数。在这里,我希望输出为Ritalin = 4,而Tylenol = 3。

我能想到的唯一解决方案是进入数据源,复制"药物名称"列并运行"查找并替换",但这不够优雅,并且需要在添加数据时重复。

感谢您的帮助。

Table I have so far

3 个答案:

答案 0 :(得分:2)

如果要将多个值映射到单个值(将它们向上滚动),请使用Tableau组。最简单的方法是:

  1. 将药品名称放在行架上
  2. 要组合的多选(shift-select)值
  3. 单击工具栏上的回形针图标将它们组合在一起
  4. 右键点击生成的合并名称,并设置较短的别名
  5. 效果是根据原始药物名称字段创建一个新的组字段,其作用类似于计算字段@Aron定义。

    如果您希望将每个单独的值映射到其自己的不同标签(比如显示一个有意义的名称而不是数据库中的简短隐藏代码),那么您可以创建别名而不是组。

答案 1 :(得分:1)

没问题。您可以使用简单的计算字段执行此操作。创建一个新的计算字段并遵循此逻辑

 **  Grp 0 -  ( pos 0 , len 8 ) 
e004_n07  
 **  Grp 1 -  ( pos 0 , len 1 ) 
e  
 **  Grp 2 -  NULL 
 **  Grp 3 -  NULL 
 **  Grp 4 -  ( pos 3 , len 1 ) 
4  
 **  Grp 5 -  ( pos 4 , len 2 ) 
_n  
 **  Grp 6 -  NULL 
 **  Grp 7 -  ( pos 7 , len 1 ) 
7  

基本上,这将评估每条记录,并根据NDC描述是X还是Y,它将输出" user1791903"或" Group2"或"未知"如果记录与您输入的任何文本都不匹配。然后,您可以将此计算字段拖到工具架上,它将使用此分组显示,然后您可以添加聚合函数以及您需要的任何其他内容。

答案 2 :(得分:0)

所有这些回复都非常有用。我最终使用的解决方案:

我创建了一个单独的电子表格,其中列出了药物名称及其泛型。然后我运行了一个表连接,将其添加到大型数据集中。这种方法很有价值,因为它允许我稍后轻松添加和编辑药物定义,甚至可以添加更多元数据。

感谢大家。