Tableau中使用IF函数转换Yes/No布尔列为数字却得到0的问题
解决Tableau中IF函数转换Yes/No为数字返回0的问题
可能的原因及对应解决方法
1. 字符串匹配不精确
如果Churn Label是字符串类型,可能存在大小写不一致(比如实际值是"yes"、"YES")或前后带空格(比如"Yes "、" Yes")的情况,导致= "Yes"无法匹配到目标值。
解决方法:修改计算字段,统一格式后再匹配:
IF TRIM(UPPER([Churn Label])) = "YES" THEN 1 ELSE 0 END
2. 未进行聚合计算
你预期得到1,345这类汇总值,但如果仅做了行级的1/0转换,没有对结果进行聚合,可能只会显示当前行的计算结果(比如当前行是"No"就返回0)。
解决方法:对计算结果使用SUM函数汇总所有"Yes"的数量:
SUM(IF [Churn Label] = "Yes" THEN 1 ELSE 0 END)
3. 字段类型判断错误
如果Churn Label确实是布尔型字段,Tableau中的布尔值是True/False,而非"Yes"/"No"。此时用字符串比较会永远不匹配,返回0。
解决方法:直接基于布尔值判断:
IF [Churn Label] THEN 1 ELSE 0 END
若需要汇总结果,同样加上SUM:
SUM(IF [Churn Label] THEN 1 ELSE 0 END)
4. 视图筛选影响
检查当前视图是否应用了筛选器,导致显示的所有行都是"No",因此计算结果为0。可以暂时移除筛选器验证。
内容的提问来源于stack exchange,提问作者Ibsanusi
相关产品推荐
相关产品推荐

