Cognos Expression Builder计算各品类占总销售额占比表达式问题求解
问题根因
你的两个表达式的聚合维度配置错误,实际计算的是「单品类销售额占该品类自身总销售额的比例」,因此每个品类的计算结果都是1,不符合跨品类占总销售额的计算需求。
修正方案
通用计算逻辑:单品类销售额 / 全量总销售额
对应表达式调整为:[Sales]/Total([Sales] for all)
若你的分析工具支持exclude语法,也可使用:[Sales]/Total([Sales] exclude [Category])针对X/Y/Z三个品类的占比计算:
如果需要统计这三个品类各自占全量总销售额的比例,调整为:CASE WHEN [Category] in ('X','Y','Z') THEN PERCENTAGE Sales FOR all ELSE NULL END如果需要统计这三个品类各自占X/Y/Z三者总销售额的比例,调整为:
CASE WHEN [Category] in ('X','Y','Z') THEN [Sales] / Total(IF [Category] in ('X','Y','Z') THEN [Sales] ELSE 0 END for all) ELSE NULL END
验证方式
所有有效品类的占比求和后,结果应为1(统计全量品类时),或等于X/Y/Z三者总销售额占全量销售额的比例(仅统计指定品类时),即代表计算逻辑正确。
内容的提问来源于stack exchange,提问作者Harnan
相关产品推荐
相关产品推荐

