Qlikview 简明教程

QlikView - Peek Function

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

Input Data

让我们按如下所示考虑每月销售数字。使用文件名 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

Load Script

以上数据通过使用脚本编辑器加载到 QlikView 内存中。从文件菜单打开脚本编辑器或按 Control+E 。为包含以上数据的文件选择 Table Files 选项。编辑加载脚本以添加以下代码。单击 OK ,然后单击 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);

Creating Sheet Object

让我们创建一个 Table Box 表对象以显示由以上给定的脚本生成的数据。转到 Layout → New Sheet Object → Table Box 菜单项。出现以下窗口,我们在其中指定表的标题并选择要显示的必需字段。单击确定可按如下所示在 QlikView 表格框中显示 CSV 文件中的数据。还要按如下所示设置排序顺序,以相同的顺序获取字段 Month 的结果,就像它在源中的顺序一样。

Monthly sales load order

在完成以上步骤并单击 Finish 后,我们得到显示以下数据的表格框。

Monthly sales prevmonth

Using peek() Function in Calculations

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);

Creating Sheet Object

让我们创建一个 Table Box 表对象以显示由以上给定的脚本生成的数据。转到 Layout → New Sheet Object → Table Box 菜单项。出现以下窗口,我们在其中指定表的标题并选择要显示的必需字段。单击确定可按如下所示在 QlikView 表格框中显示 CSV 文件中的数据。

Monthly sales prevmonth diff