新浪博客

Qlikview制作饼状图及计算占比

2017-03-06 15:21阅读:
qlikview提供了一种高效的图形化报表生成的方式,但是表达式有时比较繁杂难记,这里提供一个饼状图的案例。

假设一个企业有多种产品,现在想用饼状图表示各产品销量在总销量中的占比,及随着时间的各产品占比变化。用qlikview (以下简称qlik),首先用如下列的表头在excel中整理好数据。
Qlikview制作饼状图及计算占比
在qlik中导入数据, 然后“新建工作表对象” - 选择“饼状图”。在维度中选择“产品”,表达式为sum([销量(万)]),生成的饼图为:
Qlikview制作饼状图及计算占比

可以看到,一个简单公式,qlik就把各产品的累计销量分别计算出来了。 如果想查看单月各产品的销量,只需要在右边的字段中选择相应的月,就立即得到新的结果, 比如:
Qlikview制作饼状图及计算占比
数据与图形交互是qlik的一大亮点。
虽然图形大致显示了占比, 但相信小伙伴们更想知道具体的比值。这也是笔者遇到的一个难点!
然后,其实解决方法很简单。 表达式为:sum([销量(万)])/sum(total [销量(万)]),在“数字”选项中定义为显示1位小数的百分比,就得到:
Qlikview制作饼状图及计算占比

叮咚!占比出来了。注意表达式的分母多了个total, 这表示qlik在计算销量时,忽略了维度,于是计算出所有产品的销量合计。
有的小伙伴还是不满足,更喜欢看到各种占比随时间的变化。刚才说过,可以逐一选择相应的月查看,但如果要建立逐月的对比饼图,如:
Qlikview制作饼状图及计算占比
就可以制作3个对象,把表达式分别写成:
sum({$<周={1} >}[销量(万)])/sum(total {$<周={1} >} [销量(万)])
sum({$<周={2} >}[销量(万)])/sum(total {$<周={2} >} [销量(万)])
sum({$<周={3} >}[销量(万)])/sum(total {$<周={3} >} [销量(万)])
带$符号的维度限制公式,在qlik中很常见,但也是最让人费解的部分,特别当$中还要嵌套max(最大)、min(最小)等公式时,格式复杂得几乎只能靠复制粘贴来写正确。

根据笔者的使用经验,qlikview与excel比较,对于编程能力不强的普通用户来说,优势有:
1. 一次定义公式,“终身”使用。比方说,如果一个企业有很多个产品,每个产品每月有很多个订单,要计算每个月每个产品的累计销量。 如果使用excel计算,如果不会vba, 就要对每个月每个产品单独做公式,用qlikview花费的时间更少。
2. 公式与数据分离,确保公式正确。在excel中,如果很多个单元格要做公式,检查所有公式的正确性就不容易。 在表格使用过程中, 还很容易出现公式被误删、误改的现象。用qlikview的话,同种类型的报表,只需做一个公式,且导出的报表不带公式,这就极大地极少了公式被误删误改的几率。
3. qlik报表可直接打印、导出excel报表、或图形。
Qlikview制作饼状图及计算占比

在对象右上角的符号中,xl代表一键导出成excel报表。 注意: 真的是一键导出,极其方便。 然后还可以右键点击对象,导出饼状图这类的图形。
但是,qlik也没法完全替代excel。像前面说的, 在qlik里不能整理原始数据。 qlik的各种图表中,设置数据标签、颜色等的灵活程度也远不及excel。 qlik中不能直接录入数据,这也限制了用它进行小批量数据计算的效率。qlik处理数据的容量也有局限性,笔者测试,用普通PC,当数据行数超过万的时候,加载数据时间就很慢了;当然,如果是部署在服务器端的qlik, 性能可能会不同。

我的更多文章

下载客户端阅读体验更佳

APP专享