Tableau:使用 LOD 根据条件计算不同数量的记录 (10.2)

Tableau: Using LOD to count distinct number of records based on a condition (10.2)

这个问题与其他问题类似,但我在生成正确输出时遇到了问题。感谢您的帮助!

目标是一个维度,如果字符串包含"List Email",则统计不同记录的数量,否则统计所有记录。

我试过:

IF CONTAINS(ATTR([Subject]), "List Email:")
then ((COUNTD([Subject])))
Else COUNT([Subject])
END

(仅当维度在视图中时才有效)

CASE CONTAINS(ATTR([Subject]), "List Email:")
WHEN TRUE   then ATTR({ FIXED  [Subject] : COUNTD([Subject])})
ELSE ATTR({ FIXED  [Subject] : COUNT([Subject])})
END

包含数据的工作簿:https://community.tableau.com/message/729431

从工作簿和 link 中的 "desired output",您想要修复 [User]MONTH([Date])(相对于修复 [Subject]在问题中尝试的代码中。

这是我创建的字段,可以为您提供所需的输出:

User Emails for Month:
{ FIXED [User], MONTH([Date]) : 
    COUNTD(IIF(CONTAINS([Subject],"List Email"),[Subject],NULL))
    +
    COUNT(IIF(NOT CONTAINS([Subject],"List Email"),[Subject],NULL))
}

对于每个用户和月份,计算包含列表电子邮件的不同电子邮件,并添加所有不包含列表电子邮件的电子邮件。

请注意,这与所需的输出相匹配。相反,如果 12 月的总计应为 3,1 月的总计应为 16(即,无论用户如何,都计算不同的主题),则无需进行 LOD 计算:

# Emails:
COUNTD(IIF(CONTAINS([Subject],"List Email"),[Subject],NULL))
+
COUNT(IIF(NOT CONTAINS([Subject],"List Email"),[Subject],NULL))