QlikView - Peek 函数



在 QlikView 中,peek() 函数用于获取前一条记录中某个字段的值,并在计算中使用它。

输入数据

让我们考虑如下所示的月度销售额数据。将数据保存为名为 monthly_sales.csv 的文件。

Month,Sales Volume
March,2145
April,2458
May,1245
June,5124
July,7421
August,2584
September,5314
October,7846
November,6532
December,4625
January,8547
February,3265

加载脚本

以上数据通过脚本编辑器加载到 QlikView 内存中。从“文件”菜单打开脚本编辑器,或按 Control+E。从包含上述数据的文件中选择 表格文件选项。编辑加载脚本以添加以下代码。单击 确定,然后单击 Control+R 将数据加载到 QlikView 的内存中。

LOAD Month, 
     [Sales Volume],
     peek('Sales Volume') as Prevmonth
FROM
[C:\Qlikview\data\monthly_sales.csv]
(txt, codepage is 1252, embedded labels, delimiter is ',', msq);

创建工作表对象

让我们创建一个 表格框工作表对象来显示上述脚本生成的数据。转到菜单项 布局 → 新建工作表对象 → 表格框。将出现以下窗口,在其中我们提及表格的标题并选择需要显示的字段。单击“确定”将在 QlikView 表格框中显示来自 csv 文件的数据,如下所示。还按照如下所示设置排序顺序,以便使 月份字段的结果与源数据中的顺序相同。

Monthly_sales_load_order

完成上述步骤并单击 完成 后,我们将获得一个显示如下所示数据的表格框。

Monthly_sales_prevmonth

在计算中使用 peek() 函数

peek() 可以用于涉及其他列的计算。让我们显示每个月的销售额变化百分比。以下脚本实现了此结果。

LOAD
Month, [Sales Volume],
peek('Sales Volume') as Prevvolume,
(([Sales Volume]-peek('Sales Volume')))/peek('Sales Volume')*100  as Difference
FROM
[C:\Qlikview\data\monthly_sales.csv]
(txt, codepage is 1252, embedded labels, delimiter is ',', msq); 

创建工作表对象

让我们创建一个 表格框工作表对象来显示上述脚本生成的数据。转到菜单项 布局 → 新建工作表对象 → 表格框。将出现以下窗口,在其中我们提及表格的标题并选择需要显示的字段。单击“确定”将在 QlikView 表格框中显示来自 CSV 文件的数据,如下所示。

Monthly_sales_prevmonth_diff
广告