QlikView文本框表达式分析:如何展示TOP产品的求和与总计比值
解决QlikView文本框展示最高值产品的需求
要实现你要的效果,我们可以通过聚合函数嵌套+条件筛选+字符串拼接的方式来完成,具体步骤和表达式如下:
核心表达式
直接在文本框中使用这个表达式就能得到你想要的结果:
=Concat( Aggr( If(Sum(obtained) = Max(Total Aggr(Sum(obtained), products)), products & ' (' & Sum(obtained) & '/' & Max(total) & ')'), products ), ' ' )
表达式拆解
我给你拆解下每个部分的作用,方便你理解和调整:
- 内层聚合计算每个产品的总obtained:
Aggr(Sum(obtained), products)会按products分组,算出每个产品的累计obtained值(比如p1的2400,p2的2400) - 找出所有产品中的最高累计值:
Max(Total Aggr(Sum(obtained), products))会拿到所有产品累计值里的最大值(这里就是2400) - 生成符合格式的字符串:
If(...)判断当前产品的累计值是否等于最高值,符合条件的话就拼接成产品名 (累计值/对应total)的格式(Max(total)是因为同一产品的total值固定,用Max/Min/First都能拿到正确值) - 拼接所有符合条件的结果:
Concat(..., ' ')把所有符合条件的产品字符串用空格连接起来
操作步骤
- 在QlikView工作表中新建一个文本框(通过菜单栏
Objects->Text Object) - 右键文本框选择
Properties,切换到Expression标签页 - 把上面的表达式粘贴进去,点击
OK确认
这样文本框就会自动显示:p1 (2400/10000) p2 (2400/20000),完全符合你的需求。
内容的提问来源于stack exchange,提问作者user9445434
相关产品推荐
相关产品推荐

