Tableau筛选器下邮件/邮政偏好占比计算异常求助
解决邮件/邮政偏好占比总和超100%的问题
问题根源
部分保单(POLICY_ID)同时关联了Email和Postal两种渠道偏好,计算占比时,这些重叠保单会被分别计入两个分子,但分母是总保单数,导致两者占比相加超过100%。
方案1:按唯一用户统计偏好(推荐,若有用户标识)
如果数据里存在唯一用户ID(比如USER_ID),应该基于用户维度统计——一个用户可能有多份保单,但偏好是用户级属性,这样能避免重复计算:
邮件偏好占比计算
STR(ROUND(COUNTD(IF [CHANNEL_PREFERENCE] = 'Email' then [USER_ID] end) / COUNTD([USER_ID])*100, 2)) + "%"
邮政偏好占比计算
STR(ROUND(COUNTD(IF [CHANNEL_PREFERENCE] = 'Postal' then [USER_ID] end) / COUNTD([USER_ID])*100, 2)) + "%"
方案2:按保单做互斥偏好标记(必须按保单统计时用)
先给每个保单标记偏好类型,区分单一偏好和双偏好,再基于单一偏好计算占比:
第一步:创建计算字段Preference Type
IF [CHANNEL_PREFERENCE] = 'Email' AND NOT EXISTS({FIXED [POLICY_ID]: MAX(IF [CHANNEL_PREFERENCE] = 'Postal' THEN 1 END)}) THEN 'Only Email' ELSEIF [CHANNEL_PREFERENCE] = 'Postal' AND NOT EXISTS({FIXED [POLICY_ID]: MAX(IF [CHANNEL_PREFERENCE] = 'Email' THEN 1 END)}) THEN 'Only Postal' ELSEIF EXISTS({FIXED [POLICY_ID]: MAX(IF [CHANNEL_PREFERENCE] = 'Email' THEN 1 END)}) AND EXISTS({FIXED [POLICY_ID]: MAX(IF [CHANNEL_PREFERENCE] = 'Postal' THEN 1 END)}) THEN 'Dual Preference' END
第二步:修改占比计算
邮件偏好占比
STR(ROUND(COUNTD(IF [Preference Type] = 'Only Email' then [POLICY_ID] end) / COUNTD([POLICY_ID])*100, 2)) + "%"
邮政偏好占比
STR(ROUND(COUNTD(IF [Preference Type] = 'Only Postal' then [POLICY_ID] end) / COUNTD([POLICY_ID])*100, 2)) + "%"
可选:可以单独统计双偏好的占比,让三类占比总和为100%
方案3:调整分母为有偏好的保单总数(关注偏好覆盖度时用)
如果不需要严格按总保单数计算占比,而是统计有至少一种偏好的保单中,各偏好的占比:
邮件偏好占比
STR(ROUND(COUNTD(IF [CHANNEL_PREFERENCE] = 'Email' then [POLICY_ID] end) / COUNTD(IF [CHANNEL_PREFERENCE] IN ('Email','Postal') then [POLICY_ID] end)*100, 2)) + "%"
邮政偏好占比
STR(ROUND(COUNTD(IF [CHANNEL_PREFERENCE] = 'Postal' then [POLICY_ID] end) / COUNTD(IF [CHANNEL_PREFERENCE] IN ('Email','Postal') then [POLICY_ID] end)*100, 2)) + "%"
注:这种方式下,双偏好保单仍会被计入两个分子,总和可能超100%,但能体现偏好的覆盖情况
内容的提问来源于stack exchange,提问作者jamster126
相关产品推荐
相关产品推荐

