我正在一张Tableau桌子上工作,我想:
假设我的维度名为"Person Type“,我有5条记录,分别具有以下值:雇员、访问者、雇员;访问者、申请人、访问者;申请人
我知道我可以首先在维度上创建一个过滤器,只显示单一的记录类型: Employee、Visitor、申请者,但是我遇到困难的地方是创建一个计算,查看所有记录并计算单词"Employee“存在的实例等等。在excel中,带有文本通配符的COUNTIF公式处理此操作。
这是我想要完成的事情的一个excel屏幕截图。
编辑:尝试了一个非常接近解决方案的计算。由于某种原因,当申请人有两个明显的例子时,它并不算在内。有人知道如何改进计算吗?
IF CONTAINS([Person Types],'Employee') THEN "Employee"
ELSEIF CONTAINS([Person Types],'Visitor') THEN "Visitor"
ELSEIF CONTAINS([Person Types],'Applicant') THEN "Applicant"
END发布于 2021-02-10 22:37:35
您可以在LOD中使用包含函数,该函数在Excel中的操作方式类似于*X*。
所以,就像:
{ FIXED [NEWFIELD]: SUM(INT(CONTAINS([PERSON],"Employee"))) }
密码
IF CONTAINS([Person Types],'Employee') THEN "Employee"
ELSEIF CONTAINS([Person Types],'Visitor') THEN "Visitor"
ELSEIF CONTAINS([Person Types],'Applicant') THEN "Applicant"
END如果存在"Applicant"或“访问者”,则不会正确计算它们,因为它们将优先(每个if按顺序测试)。例如,"Visitor; Applicant"将返回"Visitor"
此外,CONTAINS是区分大小写的,因此您可能希望转换为所有大写,以确保任何细微的大小写差异都匹配。
IF CONTAINS(UPPER([Person Types]),"APPLICANT") THEN "Applicant"发布于 2021-02-11 07:09:35
为了演示,我重新创建了一个示例,如您在屏幕截图中所显示的(建议始终在代码中直接复制和粘贴一些行数据)。
步骤(Tableau Desktop)虽然在准备中更容易-
data source窗格中,单击person type字段上的向下箭头,然后单击split

person types (我故意添加了一个s来区分),使用以下计算// A single person_type for each row.
CASE [Table Name]
WHEN "Sheet1" THEN [Person Type - Split 1]
WHEN "Sheet11" THEN [Person Type - Split 2]
END排除null值,您可以创建所需的视图。

不用说,您必须按照计算字段[table name] 中的情况更改的值。
https://stackoverflow.com/questions/66145880
复制相似问题