如何在QlikView中实现多范围数据分组及分组求和?
在QlikView中实现自定义规则分组求和的两种方法
这里有两种可靠的方法来实现你要的自定义分组求和,看哪种更适合你的工作流:
方法1:脚本加载阶段预定义分组(推荐)
这种方式在数据导入时就生成分组字段,后续前端操作更灵活,性能也更优——毕竟提前把分组逻辑处理好了,前端不用再实时计算。
你可以在Load脚本里用Pick() + Match()组合函数快速映射分组,示例代码如下:
LOAD Value, Number, // 按你的规则映射分组名称 Pick( Match(Value, 'F1','F2','F3','F4','F5'), '分组1', '分组1', '分组2', '分组2', '分组3' ) as Group FROM [你的数据源路径]; // 替换成实际数据源,比如Excel文件路径、CSV路径等
代码拆解:
Match(Value, 'F1','F2','F3','F4','F5'):会返回当前Value在参数列表中的索引位置——比如Value是F1返回1,F2返回2,F3返回3,以此类推Pick():根据前面返回的索引值,对应取出后面的分组名称,所以F1/F2都会映射到'分组1',F3/F4映射到'分组2',F5映射到'分组3'
加载完成后,你只要在前端表格或图表里把Group拖到维度栏,Sum(Number)拖到表达式栏,就能直接得到每个分组的求和结果了。
如果需要分组用数字标识(比如1、2、3),直接把Pick里的字符串改成数字即可:
Pick( Match(Value, 'F1','F2','F3','F4','F5'), 1, 1, 2, 2, 3 ) as GroupNumber
方法2:前端表达式直接计算(无需修改脚本)
如果不想改动加载脚本,也可以直接在前端的图表/表格里写条件求和表达式,一步到位。
比如在表格中添加三个独立的表达式,分别对应三个分组:
- 分组1求和:
Sum(If(Match(Value, 'F1','F2'), Number))
- 分组2求和:
Sum(If(Match(Value, 'F3','F4'), Number))
- 分组3求和:
Sum(If(Value = 'F5', Number))
小提示:
- 如果你的Value存在大小写不一致的情况(比如f1、F1混用),可以用
Upper(Value)统一转换后再匹配,避免漏算:
Sum(If(Match(Upper(Value), 'F1','F2'), Number))
- 要是想在一个表达式里展示所有分组的结果,也可以用
Aggr()函数配合分组逻辑,但这种场景下分开写三个表达式会更直观,方便查看每个分组的数值。
内容的提问来源于stack exchange,提问作者test noob
相关产品推荐
相关产品推荐

