首页 > 解决方案 > 如何根据 QlikSense 中的 if 条件聚合并获取列的总和?

问题描述


姓名卷无标记

拉贾 111R 10

拉贾 111R 10

拉尼 111R 10

公羊 111Y 10

我正在尝试这样的表达式: if(Name='Raja' OR Name='Ram', RollNo &' : '& round(aggr(sum(Marks),RollNo)/sum(total(Marks))*100 ,0.01)&'%')

我预期的答案是:Raja:30%, Ram:40% 相反,我目前得到的答案是 Raja:60%, Ram:40%

标签: qliksense

解决方案


您应该已经展示了一个内联加载的示例。

学生:Load * Inline [ Name, Roll_No, Marks Raja, 10, 30 Raja, 10, 50 Ram, 12, 20 Ram, 12, 10];

一旦你这样做了,创建一个带有维度的表格:=Name 和 measure =sum(Marks)/100 带有数字格式:Auto --> Number then 12.3%

如果要在 KPI 中显示,请使用: if( Wildmatch(Name,'Raja'),sum( Marks)/100) for Raja if( Wildmatch(Name,'Ram'),sum( Marks)/100) for Ram

永远不要使用 IF(name='Raja'.....) 总是使用 Wildmatch(Fieldname,'Raja','Ram',etc,,etc)

aggr() 是一个非常有用的函数,主要用于集合分析,但非常重。如果可能,尽量避免。

更多信息请访问: https ://help.qlik.com/en-US/sense/June2019/Subsystems/Hub/Content/Sense_Hub/Scripting/ConditionalFunctions/wildmatch.htm


推荐阅读