QlikView - 快速指南
QlikView - 概述
QlikView 是一个领先的业务发现平台。与传统的 BI 平台相比,它在许多方面都是独一无二的。作为数据分析工具,它始终保持数据之间的关系,并且可以使用颜色直观地看到这种关系。它还显示不相关的数据。它通过在列表框中使用单个搜索提供直接和间接搜索。
QlikView 的核心和专利技术具有内存数据处理功能,可为用户提供超快的结果。它可以动态计算聚合并将数据压缩到原始大小的 10%。QlikView 应用程序的用户和开发人员都无需管理数据之间的关系。它是自动管理的。
QlikView 的功能
QlikView 拥有专利技术,使其具有许多功能,这些功能可用于快速从多个数据源创建高级报告。以下是 QlikView 的独特功能列表。
数据关联自动维护 − QlikView 自动识别数据集中存在的每条数据之间的关系。用户无需预先配置不同数据实体之间的关系。
数据保存在内存中,供多个用户使用,实现超快的用户体验 − 报告的结构、数据和计算均保存在服务器的内存 (RAM) 中。
聚合根据需要随时计算 − 由于数据保存在内存中,因此计算随时完成。无需存储预先计算的聚合值。
数据压缩为原始大小的 10% − QlikView 大量使用数据字典。任何分析都只需要内存中必要的数据位。因此,它将原始数据压缩到非常小的大小。
使用颜色的视觉关系 − 数据之间的关系不是通过箭头或线条来显示的,而是通过颜色来显示的。选择一段数据会为相关数据提供特定的颜色,为不相关的数据提供另一种颜色。
直接和间接搜索 − 用户无需提供他们正在寻找的直接值,而是可以输入一些相关数据并由于数据关联而获得准确的结果。当然,他们也可以直接搜索值。
QlikView - 安装
下载 QlikView
QlikView 的免费个人版可从 QlikView 个人版 下载。您需要注册您的详细信息才能下载。
下载后,安装是一个非常简单的过程,您需要接受许可协议并提供安装目标文件夹。下面给出的屏幕截图描述了整个安装过程。
启动安装向导
双击 QlikViewDesktop_x64Setup.exe 将显示一个屏幕来选择您选择的语言。选择英语后,将显示以下屏幕。然后单击下一步。
接受许可协议
阅读许可协议,如果同意,请选择"我接受许可协议中的条款"选项。然后单击"下一步"。
提供您的详细信息
提供您的姓名和组织详细信息。然后单击"下一步"。
选择目标文件夹
您可以接受默认安装目标或对其进行更改。然后点击"下一步"。
选择安装类型
选择安装类型为"完成"。然后点击"下一步"。
开始安装
在此屏幕中,您最终决定真正开始安装。如果需要,您仍然可以返回并更改一些选项。假设到目前为止一切都很好,请单击"安装"。
安装完成
安装成功后,将出现安装完成屏幕。单击"完成"。
验证安装
您可以通过转到 Windows"开始"菜单并单击 QlikView 图标来验证安装。屏幕如下所示。
您现在可以学习 QlikView 了。
QlikView - 架构
作为领先的业务发现平台,QlikView 的数据发现方法与其他传统平台截然不同。QlikView 不会先构建查询,然后根据查询获取结果。相反,它会在加载后立即在不同数据对象之间建立关联,并提示用户以任何方式探索数据。没有预定义的数据深入路径。只要数据可用且关联,数据深入路径就可以在任何方向发生。
当然,用户也可以使用 QlikView 中提供的数据建模方法在数据元素之间创建关联。
架构概述
QlikView 的架构由一个用于可视化处理后数据的前端和一个用于为 QlikView 用户文档提供安全性和发布机制的后端组成。下图描述了 QlikView 的内部工作原理。图片下方详细讨论了该架构。
前端
QlikView 中的前端是一个基于浏览器的访问点,用于查看 QlikView 文档。它包含 QlikView Server,主要供业务用户通过互联网或内联网 URL 访问已创建的 BI 报告。
业务用户使用此前端探索和与数据交互,并得出有关数据的结论。他们还通过实时或离线共享见解和共同探索数据,就给定的一组报告与其他用户进行协作。这些用户文档的格式为 .qvw,也可以作为独立文档存储在 Windows 操作系统中
前端的 QlikView 服务器管理用户和 QlikView 后端系统之间的客户端服务器通信。
后端
QlikView 后端由 QlikView 桌面 和 QlikView 发布者 组成。
QlikView 桌面 是一个向导驱动的 Windows 环境,具有从源加载和转换数据的功能。其拖放功能用于创建在前端可见的报告的 GUI 布局。由 QlikView 桌面创建的文件类型以 .qvw 的扩展名存储。这些文件被传递到前端的 QlikView 服务器,该服务器使用这些文件为用户提供服务。还可以修改 .qvw 文件以存储纯数据文件,即 .qvd 文件。它们是二进制文件,仅包含数据而不包含 GUI 组件。
QlikView 发布者 用作分发服务,在各种 QlikView 服务器和用户之间分发 .qvw 文档。它处理授权和访问权限。它还使用 .qvw 文件中定义的连接字符串直接从数据源加载数据。
QlikView - 导航
在本章中,我们将了解用户可用于执行各种操作的屏幕。我们将学习基本导航,并了解 QlikView 中可用的图标执行的不同功能。
入门屏幕
此屏幕是对 QlikView 导航的简单介绍。启动 QlikView 并选中启动 QlikView 时显示开始页选项时,将出现此屏幕。如果您向下滚动左侧的示例部分,您可以单击任何示例(如 − 电影数据库、数据可视化等)来调用它并 查看 QlikView 的工作原理。请随意点击!向右移动时,您会注意到最近和收藏夹链接,它们显示所有最近访问的 QlikView 文档以及您想要经常访问的文档。
菜单命令
关闭"入门"窗口后,我们将获得包含所有可用菜单命令的主界面。它们代表 QlikView 中可用的整个功能集。下面给出了菜单命令每个部分的概述。
文件菜单
此菜单用于创建新的 QlikView 文件并从本地系统和 QlikView 服务器打开现有文件。此菜单中的重要功能是 −
以附件形式发送邮件,将当前打开的文档作为附件通过电子邮件发送。
减少数据,仅查看报告布局和数据库结构,不包含任何数据。
表格查看器选项用于在图形视图中查看表格、字段及其关联的结构。

编辑菜单
此菜单用于执行编辑选项,如复制、粘贴、剪切和使用格式刷。此菜单中的重要功能是 −
Active All 选项可激活打开的工作表中存在的所有工作表对象。
Remove 可从活动窗口中删除工作表。
Advanced search 选项用于使用多选框通过高级搜索表达式进行搜索。
View Menu
此菜单用于查看标准工具栏和放大/缩小功能。它还将所有活动工作表显示为级联菜单。此菜单中的重要功能是 −
打开/关闭 WebView 模式 可切换 WebView 模式和本地视图模式。
当前选择 显示所选工作表对象的字段名称和文件值。
设计网格 用于切换活动对象的工作表对象占位符和对齐网格以调整布局中对象的大小和移动对象。
选择菜单
此菜单用于选择和清除工作表对象中的值选择。它还提供了返回和前进到您正在处理的工作表的不同逻辑语句的功能。此菜单中的重要功能是 −
- 锁定 锁定当前选择中的所有值。
- 解锁 解锁当前选择中的所有锁定值。
布局菜单
布局菜单用于添加选项卡式工作表、选择不同的工作表和重新排列工作表对象。此菜单中的重要功能是 −
- 提升工作表将当前工作表或选项卡向前移动一步。
- 降级工作表将当前工作表或选项卡向后移动一步。
- 删除工作表删除活动工作表及其中的所有内容。
设置菜单
设置菜单用于设置用户首选项、文档属性和工作表属性。此菜单中的重要功能是 −
- 变量概览 将所有非隐藏变量及其值显示在单个列表中。
- 表达式概览 将文档、工作表和工作表对象中的表达式显示为单个列表。
书签菜单
此菜单用于为不同的文档创建书签,以便更快地检索。
报告菜单
报告菜单用于创建新报告和编辑现有报告。您可以编辑布局、向报告添加页面以及删除报告。
工具菜单
工具菜单是一个非常突出的菜单,经常用于创建图表和打开 QlikView 管理控制台。此菜单中的重要功能是 −
快速图表向导 无需使用大量不同的设置和可用选项即可创建简单图表。
时间图表向导 创建时间序列图表。
统计图表向导 用于对数据应用常见的统计测试。
对象菜单
此菜单用于创建新的工作表对象并修改现有对象。工作表属性选项打开页面以设置定义工作表的参数。此菜单中的重要功能是 −
复制工作表 −创建工作表的副本以及所有工作表对象。
将图像复制到剪贴板 − 将工作表区域的位图图片复制到剪贴板。
删除 − 完全删除工作表及其工作表对象。
窗口和帮助菜单用于组织 QlikView 应用程序的不同窗口并提供帮助文档。
QlikView - Excel 文件
QlikView 通过简单的拖放操作接受 Excel 电子表格进行数据分析。您需要打开 QlikView 主窗口并将 excel 文件拖放到界面中。它将自动创建显示 excel 数据的表格。
选择 Excel 文件
保持 QlikView 主窗口打开并浏览要使用的 excel 文件。
选择数据源
将 excel 文件拖放到主窗口后,将出现文件向导。文件类型已选择为 Excel。在标签下,选择嵌入式标签。单击"下一步"继续。
加载脚本
出现加载脚本,其中显示将数据加载到 QlikView 文档的命令。此命令可以编辑。
现在,Excel 向导提示以 *.qvw 文件扩展名的形式保存文件。它要求您选择需要保存文件的位置。单击"下一步"继续。现在是时候查看从 Excel 文件加载的数据了。我们使用 表格框 工作表对象来显示这些数据。
创建表格框
表格框 是一个工作表对象,用于将可用数据显示为表格。它从菜单 布局 → 新建工作表对象 → 表格框 调用。
单击下一步时,我们可以选择表格框中的字段。您可以使用升级或降级按钮重新排列字段。
表格框数据
完成上述步骤后,将出现表格框工作表对象,其中显示从 Excel 文件读取的数据。
QlikView - 分隔文件
QlikView 可以使用平面文本文件中的数据,其中字段由逗号、制表符、分号等字符分隔。这里,我们将以 CSV 为例。每列数据都用逗号分隔的文件称为 CSV 文件。它是一种广泛使用的文件格式,用于存储按列和行组织的平面文本数据。
QlikView 使用文件菜单下脚本编辑器中提供的来自文件的数据选项加载 csv 文件。或者,您也可以打开一个新的 QlikView 文档并按 control+E 以获取如下所示的脚本编辑器窗口。从适当的路径中选择文件 Product_details.csv。
选择文件标题
打开选定的 CSV 文件时,将出现如下所示的窗口。在标签下,选择嵌入式标签,因为我们的文件的第一行是标题行。单击完成。
加载脚本
文件加载到 QlikView 是通过加载脚本完成的,如下面的屏幕截图所示。因此,当我们使用任何分隔文件时,我们可以根据文件格式调整下面的脚本。
现在脚本向导提示以 *.qvw 文件扩展名的形式保存文件。它要求您选择需要保存文件的位置。单击"下一步"继续。现在,是时候查看从分隔文件加载的数据了。我们使用 表格框 工作表对象来显示这些数据。
创建表格框
表格框 是一个工作表对象,用于将可用数据显示为表格。它从菜单 布局 → 新建工作表对象 → 表格框 调用。
单击下一步时,我们可以选择表格框中的字段。您可以使用升级或降级按钮重新排列字段。
表格框数据
完成上述步骤后,将出现表格框工作表对象,其中显示从 Excel 文件读取的数据。
QlikView - XML 文件
XML 是一种文件格式,它使用标准 ASCII 文本在万维网、内部网和其他地方共享文件格式和数据。它代表可扩展标记语言 (XML)。与 HTML 类似,它包含标记标签。但是,与 HTML 中标记标签描述页面结构不同,在 XML 中,标记标签描述文件中包含的数据的含义。QlikView 可以使用 XML 文件中的数据。
从 XML 文件加载数据的过程类似于我们之前看到的分隔文件的加载。打开脚本编辑器。单击菜单插入 → 加载语句 → 从文件加载。浏览要加载的 XML 文件。在此示例中,我们选择 employee_dat.xml 文件。
选择 XML 文件结构
打开选定的 XML 文件后,将出现如下所示的窗口。在左侧的 文件类型 部分下,选择 XML。XML 文件的内容现在与标题列一起显示为表格。单击完成。
文件加载器脚本
将 XML 文件加载到 QlikView 中是通过加载脚本完成的,如下所示。因此,当我们使用任何 XML 文件时,我们可以调整下面给出的脚本来重命名列或更改文件位置等。
现在脚本向导提示您以 *.qvw 文件扩展名的形式保存文件。它要求您选择需要保存文件的位置。单击"下一步"继续。现在是时候查看从 XML 文件加载的数据了。我们使用 表格框 工作表对象来显示此数据。
创建表格框
表格框 是一个工作表对象,用于将可用数据显示为表格。它从菜单 布局 → 新建工作表对象 → 调用表格框。
单击"下一步"后,我们可以选择表格框中的字段。您可以使用升级或降级按钮重新排列字段。
表格框数据
完成上述步骤后,将出现表格框工作表对象,其中显示从 Excel 文件中读取的数据。
QlikView - Web 文件
QlikView 可以处理来自 Web 的 HTML 格式的文件。它可以从 HTML 表中提取数据。要处理的 Web 文件的 URL 作为输入,QlikView 会提取文件的结构和内容。然后,它会分析页面的结构,从页面中的 HTML 表中提取相关数据。我们从脚本编辑器的数据选项卡下的文件中的数据部分中选择Web 文件选项。
提供 URL 作为输入
选择 Web 文件选项后,我们会得到一个新窗口,用于提供 URL 作为输入。在此示例中,我们选择维基百科中的亚洲主权国家和属地列表作为输入页面。输入 URL 并单击下一步。
从 Web 文件中选择表格
打开选定的 Web 文件后,将出现如下所示的窗口。在这里,我们可以看到网页中存在的各种表格,标记为 @1、@1、@3 等。选择第一个表并单击"下一步"两次。
选择表的列
从上表中,我们可以通过使用十字符号删除不需要的列来仅选择我们需要的列。
加载脚本
文件通过加载脚本加载到 QlikView 中,可以从下面的屏幕截图中看到。因此,当我们使用任何分隔文件时,我们可以根据文件格式调整下面给出的脚本。
现在脚本向导提示以 *.qvw 文件扩展名的形式保存文件。它要求选择您需要保存文件的位置。单击"下一步"继续。现在是时候查看从 Web 文件加载的数据了。我们使用 表格框 工作表对象来显示这些数据。
创建表格框
表格框 是一个工作表对象,用于将可用数据显示为表格。它是从菜单 布局 → 新建工作表对象 → 表格框 调用的。
单击"下一步"后,我们可以选择表格框中的字段。您可以使用升级或降级按钮重新排列字段。
表格框数据
完成上述步骤后,表格框工作表对象将出现,其中显示从 Web 文件读取的数据。标记非英语字符!!
QlikView - 数据库连接
QlikView 可以连接到大多数流行的数据库,如 MySQL、SQL Server、Oracle、Postgress 等。它可以将数据和表结构提取到 QlikView 环境中,并将结果存储在其内存中以供进一步分析。连接到这些数据库的步骤包括使用 DSN 创建 ODBC 连接,然后使用此 DSN 提取数据。
在本教程中,我们将连接到 MySQL 数据库。本教程假设您有一个可用的 MySQL 环境。按照以下步骤为 MySQL 创建 ODBC DSN(数据源名称)− 创建 DSN。 将 DSN 命名为 mysqluserdsn,或者如果您已经为 MySql 创建了 DSN,您可能更愿意使用现有的 DSN。
连接到数据库
在本章中,我们将使用名为 sakila 的 MySql 内置数据库。我们创建一个新的 QlikView 文档并打开脚本编辑器(按 Control+E)。在 Data 选项卡下,我们找到名为 Database 的部分。从下拉列表中选择 ODBC,然后单击 Connect。将打开以下窗口。选择名为 mysqluserdns 的 DSN,然后单击 Test Connection。应显示消息 连接测试成功。
验证与数据库的连接
成功连接后,将出现以下屏幕,显示脚本编辑器主窗口中与数据库的连接。
选择数据库表
单击上述窗口中的 选择 以获取表和列的列表。由于我们已使用 sakila 作为默认数据库创建了 DSN,因此我们从该数据库中获取了表和列的列表。我们可以从数据库下拉列表中选择另一个数据库,如下面的屏幕截图所示。在本章中,我们将继续使用 sakila 数据库。
表格加载器脚本
单击上述窗口中的"确定"后,我们将返回主脚本编辑器,其中显示使用名为 actor 的表格的脚本。
在 qvd 文件中显示结果
现在,需要永久存储加载到 QlikView 文档中的数据,以便进一步分析。为此,我们将编辑脚本以将数据存储为 qvd 文件的形式。按 Control+E 打开编辑脚本窗口并编写以下代码。
在代码中,我们为列赋予适当的名称,并在加载语句上方提及表名称。此外,我们给出了生成的 qvd 文件的存储路径。将此文件另存为 QV_mysql.qvw
使用 qvd 文件
qvd 文件可以加载到主文档中,并用于创建图形和表格以供进一步分析。按 Control+R 重新加载 QV_mysql.qvw 文件,然后单击图表向导中的 下一步。选择要创建的垂直表,以actor_id、first_name、last_name为维度,以actor_id的计数为表达式。出现如下图所示的图表。
QlikView - 内联数据
可以通过直接键入或粘贴将数据输入到 QlikView 文档中。此功能是一种将数据从剪贴板导入 QlikView 的快速方法。脚本编辑器在"插入"选项卡下提供此功能。
脚本编辑器
要打开内联数据加载选项,我们打开脚本编辑器并转到插入 → 加载语句 → 内联加载。
插入数据
打开上述屏幕后,我们会得到一个类似电子表格的文档,我们可以在其中键入值。我们还可以粘贴剪贴板中已有的值。请注意,列标题是自动创建的。单击完成。
加载脚本
加载数据的命令是在后台创建的,可以在脚本编辑器中看到。
表格框数据
在创建表格框工作表对象时,我们会看到从内联数据加载选项读取的数据。
QlikView - 常驻加载
QlikView 可以从其 RAM 中已存在的表格中加载数据,这些数据已经由脚本处理过。当您想要在同一脚本中创建一个从现有表格中获取数据的表格时,就会出现此要求。请注意,新表格和现有表格都应位于同一脚本中。
创建加载脚本
打开脚本编辑器(或使用 Control+E)并输入以下脚本。在这里,我们创建一个名为 Regions 的内联表格,其中包含不同地区的销售数据。然后,我们创建另一个名为 Total 的表格,以按地区名称计算总销售额。最后,我们删除表格 Regions,因为在此 .qvw 文件中,我们只需要名为 Total 的表格进行数据分析。
表格框数据
在创建表格框工作表对象时,我们会看到从常驻数据加载选项读取的数据。
QlikView - 前置加载
QlikView 前置加载是一种加载类型,我们使用加载语句,该语句获取同一脚本中存在的另一个加载语句的列。第一个 Load 语句读取的数据位于脚本编辑器窗口的底部,然后由其上方的 Load 语句使用。
加载脚本
下面给出的屏幕截图显示了数据的脚本,该脚本作为内联数据加载,然后将 max 函数应用于其中一列。底部的 Load 语句使数据在 QlikView 的内存中可用,该内存由第一个 Load 语句上方的第二个 Load 语句使用。第二个加载语句应用带有 group by 子句的 max 函数。
表格框数据
在创建表格框工作表对象时,我们会看到从内联数据加载选项读取的数据。
QlikView - 增量加载
随着 QlikView 文档数据源中的数据量增加,加载文件所需的时间也会增加,从而减慢分析过程。一种最小化加载数据所需时间的方法是仅加载源中的新记录或更新的记录。将源中新的或更改的记录仅加载到 QlikView 文档中的概念称为增量加载。
为了识别源中的新记录,我们对每行使用顺序唯一键或日期时间戳。这些唯一键或数据时间字段的值必须从源文件流向 QlikView 文档。
让我们考虑以下包含零售店产品详细信息的源文件。将其保存为本地系统中的 .csv 文件,QlikView 可以访问它。在一段时间内,会添加更多产品,并且某些产品的描述会发生变化。
Product_Id,Product_Line,Product_category,Product_Subcategory 1,Sporting Goods,Outdoor Recreation,Winter Sports & Activities 2,"Food, Beverages & Tobacco",Food Items,Fruits & Vegetables 3,Apparel & Accessories,Clothing,Uniforms 4,Sporting Goods,Athletics,Rugby 5,Health & Beauty,Personal Care 6,Arts & Entertainment,Hobbies & Creative Arts,Musical Instruments 7,Arts & Entertainment,Hobbies & Creative Arts,Orchestra Accessories 8,Arts & Entertainment,Hobbies & Creative Arts,Crafting Materials 9,Hardware,Tool Accessories,Power Tool Batteries 10,Home & Garden,Bathroom Accessories,Bath Caddies 11,"Food, Beverages & Tobacco",Food Items,Frozen Vegetables 12,Home & Garden,Lawn & Garden,Power Equipment
将数据加载到 QlikView 中
我们将使用脚本编辑器 (Control+E) 选择"表格文件"选项来加载上述 CSV 文件,如下所示。在这里,我们还将数据保存到本地系统中的 QVD 文件中。将 QlikView 文档保存为 .qvw 文件。
验证已加载的数据。
我们可以通过创建名为 Table Box 的工作表对象来检查已加载到 QlikView 文档的数据。此功能可在布局菜单和新工作表对象子菜单中找到。
创建表格布局
选择表格框工作表对象后,我们将进入下一个屏幕,该屏幕用于选择要创建的表格中的列及其位置。我们选择以下列及其位置,然后单击"完成"。
查看现有数据
以下图表显示了上一步中布置的数据。
更新源数据
让我们将以下三条记录添加到源数据中。此处,产品 ID 是代表新记录的唯一编号。
13,Office Supplies,Presentation Supplies,Display 14,Hardware,Tool Accessories,Jigs 15,Baby & Toddler,Diapering,Baby Wipes
增量加载脚本
现在,我们编写脚本以仅从源中提取新记录。
// 从存储的 qvd 加载数据。 Stored_Products: LOAD Product_Id, Product_Line, Product_category, Product_Subcategory FROM [E:\Qlikview\data\products.qvd] (qvd); //Select the maximum value of Product ID. Max_Product_ID: Load max(Product_Id) as MaxId resident Stored_Products; //Store the Maximum value of product Id in a variable. Let MaxId = peek('MaxId',-1); drop table Stored_Products; //Pull the rows that are new. NewProducts: LOAD Product_Id,Product_Line, Product_category,Product_Subcategory from [E:\Qlikview\data\product_categories.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq) where Product_Id > $(MaxId); //Concatenate the new values with existing qvd. Concatenate LOAD Product_Id,Product_Line, Product_category, Product_Subcategory FROM [E:\Qlikview\data\products.qvd](qvd); //Store the values in qvd. store NewProducts into [E:\Qlikview\data\products.qvd](qvd);
上述脚本仅获取新记录,这些记录被加载并存储到 qvd 文件中。我们看到新产品 ID 为 13、14 和 15 的记录。
QlikView - 数据文件 (QVD)
QlikView 的一个重要功能,也是它如此突出的特点,就是能够以非常压缩的大小存储大量数据,并将其与 QlikView 文档一起存储。因此,一旦创建了文档,我们就不需要连接到数据源,因为数据已经与文档的布局一起存储了。这是通过 QVD 文件实现的,QVD 文件是一个以 .qvd 扩展名存储的平面文件。 QVD 文件存储一个 QlikView 文档的数据,它是使用 QlikView 文档中提供的脚本编辑器创建的。
使用 QVD 文件的优势
在 QlikView 中使用 QVD 文件的优势如下 −
- 数据加载速度更快
- 随着数据量的增长,优雅地支持扩展
- 用于增量加载
- 来自多个来源的数据可以合并到一个数据集
- 并行提取数据
创建 QVD 文件
QVD 文件是在加载 QlikView 文件期间使用 STORE 语句创建的。此语句创建一个 qvd 文件,该文件作为文件存储在指定位置;与创建它的 QVW 文件不同。
下面给出了通过读取源文件将数据加载到 QlikView 文档后存储 qvd 文件的示例。
使用 QVD 文件
QVD 文件加载到 QlikView 文档的方式与使用其他文件(如 CSV、Excel 和分隔文件)的方式类似。我们使用 文件 菜单下的 打开 选项并浏览我们之前创建的 QVD 文件。打开后,系统会为我们提供一个窗口来查看数据、选择列标题并执行所需的任何数据转换
QVD 文件加载器脚本
单击"完成"后,将出现编辑脚本窗口,其中显示用于加载 QVD 文件的代码。我们可以进一步编辑此代码。例如,只显示少数几列或应用任何内置函数等。单击"完成"将文件加载到当前 QlikView 文档中。将 QlikView 文档另存为 use_qvd.qvw。
显示 QVD 文件中的数据
使用 Control+R 重新加载文档并选择菜单选项 Layout → New Sheet Objects → Table Box。将出现一个窗口,其中显示 QVD 文件中存在的表的所有列。选择 "全部添加" 将所有列添加到显示表。使用 "升级/降级" 选项更改列的顺序。单击"完成"。出现以下屏幕,显示 QVD 文件的内容。
QlikView - 工作表和对象
每个 QlikView 文档至少由一个名为 Main 的工作表组成。我们可以添加更多工作表,它们就像同一 QlikView 文档的许多页面。工作表可帮助我们显示多种数据格式,如多个图表或多个表格。每个工作表可以包含各种工作表对象。此外,可以使用 Promote Sheet/Demote Sheet 选项重新排列工作表,并可以使用 Remove Sheet 选项从 QlikView 文档中删除工作表。
工作表属性
工作表具有各种属性,可以设置这些属性以自定义工作表。例如,我们可以设置工作表的名称及其颜色。右键单击工作表中的任意位置并选择"属性"选项。然后选择以下属性。
工作表设置 → 颜色。 − 这将设置工作表的背景颜色。
选项卡设置 → 自定义颜色。 − 这将设置显示工作表名称的选项卡的颜色。
标题。 − 这将设置工作表的名称。
创建工作表对象
工作表对象是嵌入在工作表中的 QlikView 数据元素。它们显示加载到 QlikView 内存中的数据。每个工作表对象都与数据源及其一个或多个列绑定。工作表对象是从布局菜单创建的,如下所示。
使用工作表对象
工作表对象显示来自数据源的数据,工作表中的所有对象都相互关联。让我们创建一个列表框和一个多选框,并查看此关联的操作。
创建列表框
列表框显示 QlikView 内存中可用表格列的数据。从"添加工作表对象"选项中选择选项列表框,并设置如下所示的属性。
创建多选框
多选框表示来自表格中多个列的数据。从"添加工作表对象"选项中选择选项多选框,并设置如下所示的属性。
完成上述步骤后,将出现以下窗口,其中显示两个对象。
工作表对象之间的关联
我们可以通过从多选框中选择一个选项来查看工作表对象如何相互链接,这会突出显示列表框中的关联行。让我们在多选框中的产品类别下拉列表下选择"尿布"。出现如下所示的窗口。
QlikView - 脚本
脚本是 QlikView 中非常强大的功能,可用于控制数据加载选项和数据转换。它允许使用 QlikView 中提供的许多内置函数,并创建子例程以在 QlikViewdocument 中的多个脚本中使用。
脚本是使用脚本编辑器完成的。可以使用脚本编辑器从文件菜单访问它。我们也可以按Control +E打开脚本编辑器窗口。它预填充了一些数据格式,这些格式被设置为要处理的数据的默认格式。例如,千位分隔符是逗号,日期采用月-日-年格式。可以根据需要更改这些以适应传入的数据。
脚本编辑器功能
脚本编辑器具有许多功能,可从脚本编辑器窗口中的菜单访问,该菜单与主菜单不同。下面列出了一些重要功能。
文件菜单
重新加载 − 重新加载脚本并获取新数据。
大写/小写 − 转换单词的大小写,因为 QlikView 区分大小写。
注释 −用于注释代码块。
编辑菜单
清除整个脚本 − 清除活动脚本选项卡。
打开脚本文件 − 打开已保存的脚本文件。
表格查看器 − 用于查看正在加载的数据的表格视图。
插入菜单
环境变量 − 插入环境变量的标准列表。
脚本文件 − 允许浏览脚本文件并插入它们。
连接/断开语句 −用于连接或断开与外部数据库的连接。
选项卡菜单
插入选项卡 − 在当前光标位置插入选项卡。
提升/降级选项卡 − 允许将选项卡从左向右移动,反之亦然。
与上一个合并 − 用于将活动标签的内容与上一个选项卡合并。
工具菜单
ODBC 管理器 64 位/ODBC 管理器 32 位 − 允许为数据源设置正确的 DSN 信息。
编辑器首选项 −允许您配置文本字体和大小、帮助功能、快捷方式、默认脚本引擎等。
语法检查 − 用于验证脚本代码的语法。
QlikView - 函数
QlikView 有许多内置函数,可应用于内存中已有的数据。这些函数分为许多类别,选择函数后即可显示其语法。我们可以点击粘贴按钮将表达式放入编辑器并提供参数。
创建表格框
按照下面屏幕截图中显示的菜单创建表格框。
完成上述步骤后,我们会在左下角看到一个显示计算条件的窗口。
函数列表
单击计算条件旁边的按钮,然后转到函数选项卡。它显示了可用函数的列表。
从函数类别中选择String时,我们只能看到几个以字符串为参数的函数。
在接下来的章节中,我们将看到许多重要函数的用法。
QlikView - IntervalMatch
QlikView IntervalMatch 是一个功能强大的函数,用于将不同的数值与数值间隔进行匹配。它有助于分析事件的实际发生情况与计划事件。使用它的场景示例是在生产车间的装配线上,其中皮带计划在特定时间和特定持续时间内运行。但是,由于故障等原因,实际运行可能会在不同的时间点发生。
示例
考虑一条装配线,其中有三条传送带,分别名为 A、B 和 C。它们计划在一天中的特定时间启动和停止。在给定的一天中,我们研究实际的开始和结束时间,并分析当天发生的所有事情。为此,我们考虑两组观察结果,如下所示。
# Data Set for AssembilyLine. StartTime,EndTime, BeltNo 00:05,4:20, A 1:50,2:45,B 3:15,10:30,C # Data set for the events happened. ActualTime,Product 1:10,Start Belt A 2:24,Stop Belt A 3:25,Restart Belt A 4:35,Stop Belt A 2:20,Start Belt B 3:11, Stop Belt B 3:15,Start Belt C 11:20, Stop Belt C
创建脚本
我们使用Control+E在新的 QlikView 文档中打开脚本编辑器。以下代码将所需的表格创建为内联数据。创建此脚本后,按control+R将数据重新加载到 QlikView 文档中。
创建工作表对象
让我们创建一个表格框工作表对象来显示 IntervalMatch 函数生成的数据。转到菜单项布局 → 新建工作表对象 → 表格框。出现以下窗口,我们在其中输入表格的标题并选择要显示的所需字段。
显示表格框
单击上述窗口中的"确定"后,将出现一个表格,其中显示与间隔 StartTime 和 EndTime 匹配的字段 ActualTime。
QlikView - 聚合函数
QlikView 聚合函数用于从表格的行生成聚合数据。创建加载脚本时,这些函数将应用于列。下面给出了聚合函数的示例列表。在应用聚合函数时,我们还需要适当地应用 Group by 子句。
- SUM 给出列数值的总和。
- AVG 给出列数值的平均值。
- MAX 给出列数值的最大值。
- MIN 给出列数值的最小值。
示例
考虑在本地系统中存储为 product_sales.csv 的以下数据。它代表商店中不同产品线和产品类别的销售数字。
Product_Line,Product_category,Quantity,Value Sporting Goods,Outdoor Recreation,12,5642 Food, Beverages & Tobacco,38,2514 Apparel & Accessories,Clothing,54,2365 Apparel & Accessories,Costumes & Accessories,29,4487 Sporting Goods,Athletics,11,812 Health & Beauty,Personal Care,21,6912 Arts & Entertainment,Hobbies & Creative Arts,58,5201 Arts & Entertainment,Paintings,73,8451 Arts & Entertainment,Musical Instruments,41,1245 Hardware,Tool Accessories,2,456 Home & Garden,Bathroom Accessories,36,241 Food,Drinks,54,1247 Home & Garden,Lawn & Garden,29,5462 Office Supplies,Presentation Supplies,22,577 Hardware,Blocks,53,548 Baby & Toddler,Diapering,19,1247
创建加载脚本
我们使用Control+E在新的 QlikView 文档中打开脚本编辑器。以下 代码将所需的表格创建为内联数据。创建此脚本后,按 control+R 将数据重新加载到 QlikView 文档中。
创建工作表对象
让我们创建一个表格框工作表对象来显示由聚合函数生成的数据。转到菜单布局 → 新建工作表对象 → 表格框。出现以下窗口,我们在其中输入表格的标题并选择要显示的所需字段。单击"确定"将在 QlikView 表框中显示 CSV 文件中的数据,如下所示。
应用 SUM() 函数
下面给出了加载脚本,用于查找产品线和产品类别的销售数量和销售价值的总和。
单击"确定"并按 Control+R 将数据重新加载到 QlikView 文档中。现在按照上面 − 中给出的相同步骤进行操作创建工作表对象,以创建 QlikView 表格框,用于显示脚本结果,如下所示。
应用 AVG() 函数
下面给出的是加载脚本,用于创建每个产品系列的销售数量和销售价值的平均值。
# 每个产品系列中数量和价值的平均销售额。 LOAD Product_Line, avg(Quantity), avg(Value) FROM [E:\Qlikview\data\product_sales.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq) Group by Product_Line;
单击"确定",然后按 Control+R 将数据重新加载到 QlikView 文档中。现在按照与上面 − 创建工作表对象 中给出的相同步骤创建一个 QlikView 表格框,用于显示脚本的结果,如下所示。
应用 MAX() 和 MIN() 函数
下面给出了加载脚本,用于创建每个产品系列中销售数量的最大值和最小值。
# 每个产品系列中的最大和最小销售额。 LOAD Product_Line, max(Quantity) as MaxQuantity, min(Quantity) as MinQuantity FROM [E:\Qlikview\data\product_sales.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq) Group by Product_Line;
单击"确定"并按 Control+R 将数据重新加载到 QlikView 文档中。现在按照与上述 − 创建工作表对象 中相同的步骤创建一个 QlikView 表框,用于显示脚本的结果,如下所示。
QlikView - Match 函数
QlikView 中的 Match() 函数用于将表达式中字符串的值与列中存在的数据值进行匹配。它类似于我们在 SQL 语言中看到的 in 函数。它对于获取包含特定字符串的行很有用,并且它还具有 wildmatch() 函数形式的扩展。
让我们将以下数据视为下面示例的输入文件。
Product_Id,Product_Line,Product_category,Product_Subcategory 1,Sporting Goods,Outdoor Recreation,Winter Sports & Activities 2,Food, Beverages & Tobacco,Food Items,Fruits & Vegetables 3,Apparel & Accessories,Clothing,Uniforms 4,Sporting Goods,Athletics,Rugby 5,Health & Beauty,Personal Care 6,Arts & Entertainment,Hobbies & Creative Arts,Musical Instruments 7,Arts & Entertainment,Hobbies & Creative Arts,Orchestra Accessories 8,Arts & Entertainment,Hobbies & Creative Arts,Crafting Materials 9,Hardware,Tool Accessories,Power Tool Batteries 10,Home & Garden,Bathroom Accessories,Bath Caddies 11,Food, Beverages & Tobacco,Food Items,Frozen Vegetables 12,Home & Garden,Lawn & Garden,Power Equipment 13,Office Supplies,Presentation Supplies,Display 14,Hardware,Tool Accessories,Jigs 15,Baby & Toddler,Diapering,Baby Wipes
使用 Match() 函数加载脚本
以下脚本显示加载脚本,该脚本读取名为 product_categories.csv 的文件。我们在字段 Product_Line 中搜索与字符串"Food"和"Sporting Goods"匹配的值。
创建工作表对象
让我们创建一个表格框工作表对象来显示匹配函数生成的数据。转到菜单 布局 → 新建工作表对象 → 表格框。出现以下窗口,我们在其中输入表格的标题,然后选择要显示的所需字段。单击"确定"将在 QlikView 表格框中显示 CSV 文件中的数据,如下所示。
使用 Wildmatch() 函数加载脚本
wildmatch() 函数是 match() 函数的扩展,在该函数中,我们可以将通配符用作字符串的一部分,用于将值与要搜索的字段中的值进行匹配。我们搜索字符串 'Off*','*ome*。
创建工作表对象
让我们创建一个 表格框 工作表对象来显示 wildmatch 函数生成的数据。转到菜单项布局 →新建工作表对象 → 表格框。出现以下窗口,我们在其中输入表格的标题,然后选择要显示的所需字段。单击"确定"将在 QlikView 表格框中显示 CSV 文件中的数据,如下所示。
QlikView - 排名函数
QlikView 中的 Rank() 函数用于显示字段中值的排名以及返回具有特定排名值的行。因此,它用于两种场景。第一种场景是在 QlikView 图表中显示字段中值的排名,第二种场景是在聚合函数中仅显示具有特定排名值的行。
输入数据
描述排名函数的示例中使用的数据如下所示。您可以将其保存为 .csv 文件,保存在系统中 QlikView 可以访问的路径下。
Product_Id,Product_Line,Product_category,Quantity,Value 1,Sporting Goods,Outdoor Recreation,12,5642 2,Food, Beverages & Tobacco,38,2514 3,Apparel & Accessories,Clothing,54,2365 4,Apparel & Accessories,Costumes & Accessories,29,4487 5,Sporting Goods,Athletics,11,812 6,Health & Beauty,Personal Care,21,6912 7,Arts & Entertainment,Hobbies & Creative Arts,58,5201 8,Arts & Entertainment,Paintings,73,8451 9,Arts & Entertainment,Musical Instruments,41,1245 10,Hardware,Tool Accessories,2,456 11,Home & Garden,Bathroom Accessories,36,241 12,Food,Drinks,54,1247 13,Home & Garden,Lawn & Garden,29,5462 14,Office Supplies,Presentation Supplies,22,577 15,Hardware,Blocks,53,548 16,Baby & Toddler,Diapering,19,1247 17,Baby & Toddler,Toys,9,257 18,Home & Garden,Pipes,81,1241 19,Office Supplies,Display Board,29,2177
加载脚本
使用脚本编辑器将上述数据加载到 QlikView 内存中。从文件菜单打开 脚本编辑器或按 Control+E。从文件中的数据选项卡中选择表格文件选项,然后浏览包含上述数据的文件。单击确定并按Control+R将数据加载到 QlikView 的内存中。
使用 Rank() 函数创建图表
接下来,我们按照以下步骤创建一个图表,该图表显示了相对于维度 Product_Line 描述的字段 Value 的排名。
选择图表类型
单击图表向导并选择垂直表选项作为图表类型。单击下一步。
选择图表维度
从第一维度下拉列表中,选择 Product_Line 作为维度。单击下一步。
定义图表表达式
在自定义表达式字段中,输入排名表达式,如下所示。这里我们考虑名为值的数字字段,它表示每个产品线下每个类别的销售额。单击下一步。
显示图表
单击上述步骤中的"完成"后,将出现以下图表,其中显示了每个产品系列的销售价值排名。
使用带有排名的聚合函数
− max、min 等聚合函数可以将排名作为参数来返回满足特定排名值的行。我们考虑在脚本编辑器中使用以下表达式,它将给出每个产品系列下包含最高销售额的行。
# 加载每个产品系列中销售额最高的记录。 LOAD Product_Line, max(Value,1) FROM [E:\Qlikview\data\product_sales.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq) group by Product_Line;
创建工作表对象
让我们创建一个表格框工作表对象来显示由上述脚本生成的数据。转到菜单布局 → 新建工作表对象 → 表格框。出现以下窗口,我们在其中输入表格的标题并选择要显示的所需字段。单击"确定"将在 QlikView 表格框中显示来自 CSV 文件的数据,如下所示。
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 文件的数据,如下所示。还请按如下所示设置排序顺序,以使结果的 Month 字段顺序与源中的顺序相同。
完成上述步骤并单击 Finish 后,我们将获得显示以下数据的表格框。
在计算中使用 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);
创建工作表对象
让我们创建一个 Table Box 工作表对象来显示上述脚本生成的数据。 转到菜单项 Layout → New Sheet Object → Table Box。出现以下窗口,我们在其中输入表的标题并选择要显示的所需字段。单击"确定"将在 QlikView 表格框中显示 CSV 文件中的数据,如下所示。
QlikView - RangeSum 函数
QlikView 中的 RangeSum() 函数用于对所选字段进行选择性求和,而 sum 函数则无法轻松实现此操作。它可以将包含其他函数的表达式作为其参数,并返回这些表达式的总和。
输入数据
让我们考虑如下所示的月度销售数据。使用文件名 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] FROM [C:\Qlikview\data\monthly_sales.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
应用 RangeSum() 函数
将上述数据加载到 QlikView 的内存中后,我们编辑脚本以添加一个新列,该列将提供每月销售量的滚动总和。为此,我们还借助上一章中讨论的 peek 函数来保存上一条记录的值并将其添加到当前记录的销售量中。以下脚本实现了结果。
LOAD Month, [Sales Volume], rangesum([Sales Volume],peek('Rolling')) as Rolling FROM [C:\Qlikview\data\monthly_sales.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
创建工作表对象
让我们创建一个表格框工作表对象来显示由上述脚本生成的数据。转到菜单布局 → 新建工作表对象 → 表格框。
出现以下窗口,我们在其中输入表格的标题并选择要显示的所需字段。单击"确定"将在 QlikView 表格框中显示来自 CSV 文件的数据,如下所示。
QlikView - 文档
QlikView 文档是包含用于数据呈现和分析的所有对象的文件。它包含工作表、变量、数据模型、源数据连接详细信息,甚至从源中提取后加载的数据。
文档属性
我们可以快速找到 QlikView 文档的基本信息。单击帮助 → 文档支持信息。下面给出了一个示例输出。
设置文档背景图像
我们可以使用常规选项卡下的复选框墙纸图像将图像设置为文档的背景图像。我们选择一个图像,然后使用下拉按钮将其对齐到左上角位置。
选择上述选项后,将出现以下屏幕。
工作表对象
QlikView 文档包含各种工作表对象,可以通过拖动它们来移动它们,并将它们放置在文档中的任何位置。让我们创建两个工作表对象,一个表格框和一个统计框。您可以按照前面我们已经学习过的章节来创建工作表对象。此外,我们还使用文件 Product_sales.csv,该文件在此处提及。
可以使用"Sheets"选项卡查看 Sheets 对象的详细信息。它显示文档中包含的所有工作表,并且对于每个工作表,都会显示工作表对象。工作表和工作表对象都有唯一的 ID。我们还可以从此选项卡本身编辑这些对象的各种属性。
安排文档
可以安排 QlikView 文档在某些所需的时间间隔刷新。这是通过文档属性窗口下的计划选项卡完成的。
QlikView - 列表框
列表框表示特定字段的所有值的列表。选择列表框中的值会突出显示其他工作表对象中的相关值。这有助于更快地进行视觉分析。 在各种工作表对象之间跟踪向下钻取路径也非常有用。它还具有搜索功能,允许在列表框中搜索特定值,这对于非常长的值列表非常有用。
输入数据
让我们考虑以下输入数据,它代表不同产品线和产品类别的销售数字。
Product_Line,Product_category,Value Sporting Goods,Outdoor Recreation,5642 Food, Beverages & Tobacco,2514 Apparel & Accessories,Clothing,2365 Apparel & Accessories,Costumes & Accessories,4487 Sporting Goods,Athletics,812 Health & Beauty,Personal Care,6912 Arts & Entertainment,Hobbies & Creative Arts,5201 Arts & Entertainment,Paintings,8451 Arts & Entertainment,Musical Instruments,1245 Hardware,Tool Accessories,456 Home & Garden,Bathroom Accessories,241 Food,Drinks,1247 Home & Garden,Lawn & Garden,5462 Office Supplies,Presentation Supplies,577 Hardware,Blocks,548 Baby & Toddler,Diapering,1247 Baby & Toddler,Toys,257 Home & Garden,Pipes,1241 Office Supplies,Display Board,2177
加载脚本
使用脚本编辑器将上述数据加载到 QlikView 内存中。从文件菜单打开脚本编辑器或按 Control+E。从 文件中的数据 选项卡中选择 表格文件 选项,然后浏览包含上述数据的文件。编辑加载脚本以添加以下代码。单击 确定 并单击 Control+R 将数据加载到 QlikView 的内存中。
LOAD Product_Line, Product_category, Value FROM [C:\Qlikview\data\product_sales.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
创建列表框
创建列表框涉及浏览菜单布局 → 新建工作表对象 → 列表框。以下屏幕显示了这些步骤。
接下来,我们选择产品类别作为构建列表框的字段。
列表框数据
完成上述步骤后,将出现以下屏幕,该屏幕将产品类别的值显示为列表框。
列表框中的搜索选项
当列表框包含大量值时,很难向下滚动并查找它。因此,可以使用列表框顶部的搜索框输入搜索字符串。输入第一个字母后,相关值就会立即出现。
列表框和关联
其他工作表对象会自动与列表框关联,通过从列表框中选择值可以轻松观察到关联。
QlikView - 多选框
多选框表示来自多个字段的所有值的列表,作为下拉值。与列表框类似,在多选框中选择值会突出显示其他工作表对象中的相关值。这有助于更快地进行视觉分析。在各种工作表对象之间跟踪钻取路径也非常有用。
输入数据
让我们考虑以下输入数据,它代表不同产品线和产品类别的销售数据。
Product_Line,Product_category,Value Sporting Goods,Outdoor Recreation,5642 Food, Beverages & Tobacco,2514 Apparel & Accessories,Clothing,2365 Apparel & Accessories,Costumes & Accessories,4487 Sporting Goods,Athletics,812 Health & Beauty,Personal Care,6912 Arts & Entertainment,Hobbies & Creative Arts,5201 Arts & Entertainment,Paintings,8451 Arts & Entertainment,Musical Instruments,1245 Hardware,Tool Accessories,456 Home & Garden,Bathroom Accessories,241 Food,Drinks,1247 Home & Garden,Lawn & Garden,5462 Office Supplies,Presentation Supplies,577 Hardware,Blocks,548 Baby & Toddler,Diapering,1247 Baby & Toddler,Toys,257 Home & Garden,Pipes,1241 Office Supplies,Display Board,2177
加载脚本
使用脚本编辑器将上述数据加载到 QlikView 内存中。从文件菜单打开脚本编辑器或按 Control+E。从 文件中的数据 选项卡中选择 表格文件 选项,然后浏览包含上述数据的文件。编辑加载脚本以添加以下代码。单击 确定 并单击 Control+R 将数据加载到 QlikView 的内存中。
LOAD Product_Line, Product_category, Value FROM [C:\Qlikview\data\product_sales.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
创建多选框
创建多选框需要通过菜单布局 → 新建工作表对象 → 多选框进行导航。以下屏幕显示了这些步骤。
接下来,我们选择产品销售表的字段来构建多选框。
多选框数据
完成上述步骤后,将出现以下屏幕,其中将产品类别的值显示为多选框。
多选框和关联
其他工作表对象会自动与多选框关联,并且可以通过从多选框中选择值轻松观察到关联。
QlikView - 文本对象
QlikView 文本对象用于显示有关正在显示的 QlikView 报告的一些描述性信息。它还可以显示基于某些表达式的计算。它主要用于使用颜色和不同字体类型在与其他工作表对象分开的框中显示格式良好的信息。
输入数据
让我们考虑以下输入数据,它代表不同产品线和产品类别的销售数字。
Product_Line,Product_category,Value Sporting Goods,Outdoor Recreation,5642 Food, Beverages & Tobacco,2514 Apparel & Accessories,Clothing,2365 Apparel & Accessories,Costumes & Accessories,4487 Sporting Goods,Athletics,812 Health & Beauty,Personal Care,6912 Arts & Entertainment,Hobbies & Creative Arts,5201 Arts & Entertainment,Paintings,8451 Arts & Entertainment,Musical Instruments,1245 Hardware,Tool Accessories,456 Home & Garden,Bathroom Accessories,241 Food,Drinks,1247 Home & Garden,Lawn & Garden,5462 Office Supplies,Presentation Supplies,577 Hardware,Blocks,548 Baby & Toddler,Diapering,1247 Baby & Toddler,Toys,257 Home & Garden,Pipes,1241 Office Supplies,Display Board,2177
加载脚本
使用脚本编辑器将上述数据加载到 QlikView 内存中。从文件菜单打开脚本编辑器或按 Control+E。从"文件中的数据"选项卡中选择"表格文件"选项,然后浏览包含上述数据的文件。编辑加载脚本以添加以下代码。单击"确定"并按"Control+R"将数据加载到 QlikView 的内存中。
LOAD Product_Line, Product_category, Value FROM [C:\Qlikview\data\product_sales.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
创建表格框
对于上述数据,让我们创建一个表格框,它将以表格形式显示数据。 转到菜单布局 → 新建工作表对象 → 表格框并选择如下所示的列。
单击应用,然后单击确定以完成创建表格框。出现以下屏幕。
创建文本对象
对于上述数据,让我们创建一个文本对象。转到菜单布局 → 新建工作表对象 → 文本对象,如下所示。
创建文本对象表达式
在上面创建的文本框上,右键单击并选择属性。然后在"常规"选项卡下的"文本"框中输入要在"文本对象"上显示的内容,如下所示。
选择背景颜色
可以使用"常规"选项卡中的背景选项设置"文本对象的背景颜色"。
文本对象
最终的文本对象如下所示。如果我们点击某个产品线进行过滤,则文本对象中的内容会相应更改以反映新值。
QlikView - 条形图
条形图是一种非常广泛使用的图表方法,用于以条形形式研究两个维度之间的关系。图形中条形的高度表示一个维度的值。条形的数量表示另一个维度的值序列或分组值。
输入数据
让我们考虑以下输入数据,它代表不同产品线和产品类别的销售数字。
Product_Line,Product_category,Value Sporting Goods,Outdoor Recreation,5642 Food, Beverages & Tobacco,2514 Apparel & Accessories,Clothing,2365 Apparel & Accessories,Costumes & Accessories,4487 Sporting Goods,Athletics,812 Health & Beauty,Personal Care,6912 Arts & Entertainment,Hobbies & Creative Arts,5201 Arts & Entertainment,Paintings,8451 Arts & Entertainment,Musical Instruments,1245 Hardware,Tool Accessories,456 Home & Garden,Bathroom Accessories,241 Food,Drinks,1247 Home & Garden,Lawn & Garden,5462 Office Supplies,Presentation Supplies,577 Hardware,Blocks,548 Baby & Toddler,Diapering,1247 Baby & Toddler,Toys,257 Home & Garden,Pipes,1241 Office Supplies,Display Board,2177
加载脚本
使用脚本编辑器将上述数据加载到 QlikView 内存中。从文件菜单打开脚本编辑器或按 Control+E。从"来自文件的数据"选项卡中选择"表格文件"选项,然后浏览包含上述数据的文件。编辑加载脚本以添加以下代码。单击"确定"并按 "Control+R" 将数据加载到 QlikView 的内存中。
LOAD Product_Line, Product_category, Value FROM [C:\Qlikview\data\product_sales.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
创建表格框(工作表对象)
对于上述数据,让我们创建一个表格框,它将以表格形式显示数据。转到菜单布局 → 新建工作表对象 → 表格框并选择如下所示的列。
单击应用,然后单击确定以完成创建表格框。出现以下屏幕。
使用快速图表向导
要开始创建条形图,我们将使用快速图表向导。单击它后,将出现以下 屏幕,提示您选择图表类型。选择条形图并单击 下一步。
选择图表维度
选择产品线作为第一维度。
选择图表表达式
图表表达式用于对具有数值的字段应用Sum、Average 或 Count等函数。我们将对名为 Value 的字段应用 Sum 函数。单击下一步。
选择图表格式
图表格式定义图表的样式和方向。我们在每个类别中选择第一个选项。单击下一步。
条形图
条形图如下所示。它显示不同产品线的字段值的高度。
QlikView - 饼图
饼图是将值表示为具有不同颜色的圆形切片。切片带有标签,并且每个切片对应的数字也显示在图表中。QlikView 使用图表向导或图表工作表对象创建饼图。
输入数据
让我们考虑以下输入数据,它代表不同产品线和产品类别的销售数字。
Product_Line,Product_category,Value Sporting Goods,Outdoor Recreation,5642 Food, Beverages & Tobacco,2514 Apparel & Accessories,Clothing,2365 Apparel & Accessories,Costumes & Accessories,4487 Sporting Goods,Athletics,812 Health & Beauty,Personal Care,6912 Arts & Entertainment,Hobbies & Creative Arts,5201 Arts & Entertainment,Paintings,8451 Arts & Entertainment,Musical Instruments,1245 Hardware,Tool Accessories,456 Home & Garden,Bathroom Accessories,241 Food,Drinks,1247 Home & Garden,Lawn & Garden,5462 Office Supplies,Presentation Supplies,577 Hardware,Blocks,548 Baby & Toddler,Diapering,1247 Baby & Toddler,Toys,257 Home & Garden,Pipes,1241 Office Supplies,Display Board,2177
加载脚本
使用脚本编辑器将上述数据加载到 QlikView 内存中。从文件菜单打开脚本编辑器或按 Control+E。从"文件中的数据"选项卡中选择"表格文件"选项,然后浏览包含上述数据的文件。编辑加载脚本以添加以下代码。单击"确定"并按"Control+R"将数据加载到 QlikView 的内存中。
LOAD Product_Line, Product_category, Value FROM [C:\Qlikview\data\product_sales.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
使用快速图表向导
要开始创建饼图,我们将使用快速图表向导。单击它时,将出现以下屏幕,提示您选择图表类型。选择饼图并单击下一步。
选择图表维度
选择产品线作为第一个维度。
选择图表表达式
图表表达式用于对具有数值的字段应用Sum、Average 或 Count等函数。我们将在名为 Value 的字段上应用 Sum 函数。单击下一步。
选择图表格式
图表格式定义图表的样式和方向。我们选择第三个选项。单击下一步。
饼图
条形图如下所示。它显示了不同产品系列的字段值的高度。
QlikView - 仪表板
仪表板是一种强大的功能,可以同时显示来自多个字段的值。QlikeView 的内存数据关联功能可以显示所有工作表对象中的动态值。
输入数据
让我们考虑以下输入数据,它代表不同产品系列和产品类别的销售数字。
Product_Line,Product_category,Value Sporting Goods,Outdoor Recreation,5642 Food, Beverages & Tobacco,2514 Apparel & Accessories,Clothing,2365 Apparel & Accessories,Costumes & Accessories,4487 Sporting Goods,Athletics,812 Health & Beauty,Personal Care,6912 Arts & Entertainment,Hobbies & Creative Arts,5201 Arts & Entertainment,Paintings,8451 Arts & Entertainment,Musical Instruments,1245 Hardware,Tool Accessories,456 Home & Garden,Bathroom Accessories,241 Food,Drinks,1247 Home & Garden,Lawn & Garden,5462 Office Supplies,Presentation Supplies,577 Hardware,Blocks,548 Baby & Toddler,Diapering,1247 Baby & Toddler,Toys,257 Home & Garden,Pipes,1241 Office Supplies,Display Board,2177
加载脚本
使用脚本编辑器将上述数据加载到 QlikView 内存中。从文件菜单打开脚本编辑器或按 Control+E。从"文件中的数据"选项卡中选择"表格文件"选项,然后浏览包含上述数据的文件。编辑加载脚本以添加以下代码。单击"确定"并按"Control+R"将数据加载到 QlikView 的内存中。
LOAD Product_Line, Product_category, Value FROM [C:\Qlikview\data\product_sales.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
选择矩阵
我们从上述输入数据中选择字段作为要在仪表板中显示的矩阵。为此,我们按照菜单布局 → 选择字段中的步骤进行操作。
在下一个屏幕中,选择要在仪表板中显示的可用字段。单击"确定"。
出现以下屏幕,显示所有字段
将图表添加到仪表板
现在我们通过右键单击工作表中的任意位置并选择新建工作表对象→ 来将图表添加到仪表板图表。
选择图表类型
让我们选择条形图作为图表类型,以显示各种产品线的销售值。
图表维度
让我们选择产品线作为图表维度。
图表表达式
表达式显示产品线维度的销售值是在表达式编辑器中写入的。
仪表板
下面是完成上述步骤后显示的仪表板。
使用仪表板
可以选择上述仪表板中的值来过滤特定产品,图表会相应更改。此外,关联值也会突出显示。
QlikView - 数据转换
数据转换是将现有数据修改为新数据格式的过程。它还可以涉及过滤或向现有数据集添加一些特定值。QlikView 可以在将数据读入内存并使用许多内置函数后执行数据转换。
输入数据
让我们考虑以下输入数据,它代表每个月的销售数据。它存储为名为 quarterly_sales.csv 的 csv 文件
Month,SalesVolume March,2145 April,2458 May,1245 Sales Values in Q2 June,5124 July,7421 August,2584 Sales Values in Q3 September,5314 October,7846 November,6532 December,4625 January,8547 February,3265
加载数据
使用脚本编辑器将上述数据加载到 QlikView 内存中。从文件菜单打开脚本编辑器或按 Control+E。从"文件中的数据"选项卡中选择"表格文件"选项,然后浏览文件 quarterlt_sales.csv。单击下一步。
转换向导
下一个屏幕提示我们选择一些数据转换。单击按钮启用转换步骤。
转换类型
在此步骤中,我们将选择转换以消除描述季度的行。我们选择垃圾并删除标记b>并选择不需要的两行。单击下一步。
文件向导选项
选择转换类型和要删除的行后,下一个屏幕会提示我们进行任何进一步的转换,例如选择 where 子句或添加任何前缀。我们将忽略此步骤并单击"完成"。
转换数据的加载脚本
所有转换步骤完成后,上述数据的加载脚本如下所示。
显示转换的数据
可以使用表格框工作表对象显示转换的数据。创建步骤如下。
接下来,我们选择表格框的字段。
表格框现在显示工作表中的数据。
QlikView - 填充函数
QlikView 中的 填充 函数用于将现有字段的值填充到新字段中。
输入数据
让我们考虑以下输入数据,它代表实际和预测的销售数字。
Month,Forecast,Actual March,2145,2247 April,2458, May,1245, June,5124,3652 July,7421,7514 August,2584, September,5314,4251 October,7846,6354 November,6532,7451 December,4625,1424 January,8547,7852 February,3265,
加载脚本
使用脚本编辑器将上述数据加载到 QlikView 内存中。从文件菜单打开脚本编辑器或按 Control+E。从"文件中的数据"选项卡中选择"表格文件"选项,然后浏览包含上述数据的文件。
在上述步骤中单击下一步后,我们选择启用转换步骤按钮以执行所需的数据转换。
选择数据转换
由于我们将使用填充功能,因此让我们选择"填充"选项卡,该选项卡在"实际字段"下显示空值。
创建填充条件
单击"填充"按钮后,将出现选择目标列和单元格条件的选项。我们选择第三列,因为我们想用第二列中同一行的值填充此列的空值。此外,选择单元格值为空,这样只有空单元格才会被新值覆盖。
转换后的数据
完成上述步骤后,我们将获得如下所示的转换后的数据。
转换后数据的加载脚本
可以使用脚本编辑器查看转换后数据的加载脚本。脚本显示替换空单元格值的表达式。
显示转换后的数据
可以使用菜单布局 → 新建工作表对象中的选项创建表格框来查看转换后的数据。
QlikView - 列操作
列操作是一种数据转换,其中新列会使用现有列中的值进行填充,以满足某些条件。标准可以是表达式,它是作为数据转换步骤的一部分创建的。
输入数据
让我们考虑以下输入数据,它代表实际和预测的销售数字。
Month,Forecast,Actual March,2145,2247 April,2458,2125 May,1245,2320 June,5124,3652 July,7421,7514 August,2584,3110 September,5314,4251 October,7846,6354 November,6532,7451 December,4625,1424 January,8547,7852 February,3265,2916
加载脚本
使用脚本编辑器将上述数据加载到 QlikView 内存中。从文件菜单打开脚本编辑器或按 Control+E。从"文件中的数据"选项卡中选择"表格文件"选项,然后浏览包含上述数据的文件。单击下一步后,我们选择启用转换步骤按钮以执行所需的数据转换。
选择数据转换
选择列选项卡,然后选择新建按钮。它要求指定新列和行条件。我们将第 3 列指定为源列,并选择以 2 开头的值作为行条件。
转换后的数据
完成上述步骤后,我们将获得如下所示的转换后的数据。
转换后数据的加载脚本
可以使用脚本编辑器查看转换后数据的加载脚本。脚本显示表达式,该表达式创建具有所需值的新列。
显示转换后的数据
通过使用菜单布局 → 新建工作表对象中的选项创建表格框,可以看到转换后的数据。
QlikView - 旋转表格
QlikView 中的旋转表格类似于 Microsoft Excel 中的列和行转置功能,但具有一些附加选项。我们可以向多个方向转置列,它们会给出不同的结果。在本章中,我们将看到将行转换为列的正常转置选项。
输入数据
让我们考虑以下输入数据,它代表实际和预测的销售数字。
Month,Forecast,Actual March,2145,2247 April,2458, May,1245, June,5124,3652 July,7421,7514 August,2584, September,5314,4251 October,7846,6354 November,6532,7451 December,4625,1424 January,8547,7852 February,3265,
加载脚本
使用脚本编辑器将上述数据加载到 QlikView 内存中。从文件菜单打开脚本编辑器或按 Control+E。从"文件中的数据"选项卡中选择"表格文件"选项,然后浏览包含上述数据的文件。
单击下一步后,我们选择启用转换步骤按钮来执行所需的数据转换。
选择数据转换
由于我们将使用旋转功能,因此让我们选择显示所有字段值的"旋转"选项卡。
应用旋转
我们单击转置按钮来转置上述数据。转置后的数据如下所示。
加载转换数据的脚本
可以使用脚本编辑器查看转换数据的加载脚本。脚本显示表达式,用于替换空单元格值。
显示转换后的数据
可以使用菜单布局 → 中的选项创建表格框来查看转换后的数据新的工作表对象。
QlikView - 维度和度量
维度和度量是基本实体,在数据分析中始终使用。例如,考虑分析结果,"每个季度的销售量百分比变化是多少?"在这种情况下,每个季度代表维度,即季度的名称。销售量百分比变化代表度量,它是针对维度中每个值的计算。以下是这两个术语的一些广泛接受的定义。
- 维度 − 它是数据集中的一个描述性字段,代表几个不同的值。示例 −月、年、产品 ID 等。
- 度量 − 它是一个数字字段,针对维度的每个不同值执行一些计算。
输入数据
让我们考虑以下输入数据,它代表不同地区不同产品线和产品类别的销售量和收入。将数据保存到 .csv 文件中。
ProductID,ProductCategory,Region,SalesVolume, Revenue 1,Outdoor Recreation,Europe,457,25841 2,Clothing,Europe,125,54281 3,Costumes & Accessories,South Asia,781,54872 4,Athletics,South Asia,839,87361 5,Personal Care,Australia,473,15425 6,Arts & Entertainment,North AMerica,625,84151 7,Hardware,South America,772,45812
加载脚本
使用脚本编辑器将上述数据加载到 QlikView 内存中。从文件菜单打开脚本编辑器或按 Control+E。从 文件中的数据 选项卡中选择 表格文件 选项,然后浏览包含上述数据的文件。单击 确定 并按 Control+R 将数据加载到 QlikView 的内存中
表格结构
我们可以通过菜单 文件 → 表格查看器 或按 Control+T 查看表格的结构。出现以下屏幕,其中我们在绿色框内标记了维度,在红色框内标记了度量。
使用维度和度量
让我们创建一个垂直表图表,使用上述维度和度量显示计算结果。单击快速图表向导,如下所示。
接下来,单击垂直表选项。单击下一步。
选择维度
在此屏幕中,我们选择"区域"作为维度,因为我们要选择每个区域的总收入。
选择度量
下一个屏幕提示在度量字段上应用计算。我们选择在 Revenue 字段上应用 Sum。
最终图表
完成上述步骤后,我们将获得最终图表,其中显示每个地区(维度)的总收入(度量)。
QlikView - 星型模式
星型模式模型是一种数据模型,其中多个维度链接到单个事实表。当然,在更大的模型中,可以有多个事实表链接到多个维度和其他事实表。此模型的用处在于以最少的表间连接执行快速查询。事实表包含数据,这些数据是度量值,具有数值。计算应用于事实表中的字段。维度表的唯一键用于将其链接到胖表,胖表也具有通常具有相同字段名称的键。因此,事实表包含整个维度表的键,并形成用于各种查询的连接主键。
输入数据
下面给出了一个表列表,其中包含来自不同供应商和地区的不同产品的数据。供应也发生在不同的时间间隔,这些时间间隔在时间维度表中捕获。
产品维度
它包含产品类别和产品名称。产品 ID 字段是唯一键。
ProductID,ProductCategory,ProductName 1,Outdoor Recreation,Winter Sports & Activities 2,Clothing,Uniforms 3,Lawn & Garden Power, Equipment 4,Athletics,Rugby 5,Personal Care,Shaver 6,Arts & Entertainment,Crafting Materials 7,Hardware,Power Tool Batteries
区域维度
它包含供应商所在的区域名称。RegionID 字段是唯一键。
RegionID,Continent,Country 3,North America, USA 7,South America, Brazil 12,Asia,China 2,Asia,Japan 5,Europe,Belgium
供应商维度
它包含供应上述产品的供应商名称。SupplierID 字段是唯一键。
SupplierID,SupplierName 3S12,Supre Suppliers 4A15,ABC Suppliers 4S66,Max Sports 5F244,Nice Foods 8A45,Artistic angle
时间维度
包含上述产品供应的时间段。TimeID 字段是唯一的 Key。
TimeID,Year,Month 1,2012,Feb 2,2012,May 3,2012,Sep 4,2013,Aug 5,2014,Jan 6,2014,Nov
供应商数量事实
它包含供应数量值及其缺陷百分比。它通过同名键连接到上述每个维度。
ProductID,RegionID,TimeID,SupplierID,Quantity, DefectPercentage 1,3,3,5F244,8452,12 2,3,1,4S66,5124,8.25 3,7,1,8A45,5841,7.66 4,12,2,4A15,5123,1.25 5,5,3,4S66,7452,8.11 6,2,5,4A15,5142,3.66 7,2,1,4S66,452,2.06
加载脚本
使用脚本编辑器将上述数据加载到 QlikView 内存中。从文件菜单打开脚本编辑器或按 Control+E。从 文件中的数据 选项卡中选择 表格文件 选项并浏览包含上述数据的文件。单击 确定 并按 Control+R 将数据加载到 QlikView 的内存中。以下是读取上述每个文件后出现的脚本。
LOAD ProductID, ProductCategory, ProductName FROM [C:\Qlikview\images\StarSchema\Product_dimension.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq); LOAD TimeID, Year, Month FROM [C:\Qlikview\images\StarSchema\Time.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq); LOAD SupplierID, SupplierName FROM [C:\Qlikview\images\StarSchema\Suppliers.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq); LOAD RegionID, Continent, Country FROM [C:\Qlikview\images\StarSchema\Regions.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq); LOAD ProductID, RegionID, TimeID, SupplierID, Quantity, DefectPercentage FROM [C:\Qlikview\images\StarSchema\Supplier_quantity.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
星型模式数据模型
将上述数据读入 QlikView 内存后,我们可以查看数据模型,该模型以星型模式的形式显示所有表、字段和关系。
QlikView - 合成键
合成键是 QlikView 的解决方案,用于在两个表之间使用哪个键存在歧义时创建人工键。当两个表有两个或多个共同字段时,就会出现这种情况。 QlikView 在内存中创建关联的功能 会自动检测这种情况并创建一个额外的表,该表将保存新创建的键的值。
输入数据
让我们考虑以下两个 CSV 数据文件,它们用作进一步说明的输入。
Sales: ProductID,ProductCategory,Country,SaleAmount 1,Outdoor Recreation,Italy,4579 2,Clothing,USA,4125 3,Costumes & Accessories,South Korea,6521 Product: ProductID, Country 3,Brazil 3,China 2,Korea 1,USA
加载脚本
我们使用脚本编辑器加载上述输入数据,按Control+E即可调用。选择选项表格文件并浏览输入文件。
数据模型
接下来,我们使用表格查看器的菜单命令 Control+T 查看数据模型。出现以下屏幕,其中显示了第三个表的创建,该表提供合成密钥的值,因为两个表都具有 ProductID 和 Country 作为匹配密钥。
合成密钥的影响
合成密钥表明正在使用的数据模型存在缺陷。它们不会对数据的正确性或报告的性能造成任何问题。如果大数据模型有一个或两个合成密钥实例,一切都会正常进行。但是,如果我们有太多合成密钥实例,那么就意味着需要重新设计数据模型。
QlikView - 生成数据
很多时候,我们需要由正在使用的软件以编程方式生成一些数据,这些数据不是来自某个源。例如,100 个随机数或仅仅是一年中第 23 周的日期。数据分析师可能需要创建这样的数据来对不包含这些值的数据执行一些分析。QlikView 提供了一个名为 Autogenerate 的函数,可用于满足此类要求。
数据要求
考虑这样一种情况,我们只需要查找星期四或星期日的日期。我们需要找到从今天开始到年底的范围。我们创建以下脚本来实现这一点。
说明
我们声明两个变量来捕获当前月份的第一天和年底。接下来,我们应用各种函数和过滤条件来生成所需的值。 recno() 函数为每个日期创建一条记录。我们添加自动生成函数,将变量作为范围。
生成的数据
将上述脚本加载到 QlikView 的内存中,并使用菜单 布局 → 新建工作表对象 → 表格框 创建表格框后,我们得到如下所示的数据。
QlikView - 交叉表
在分析数据时,我们会遇到希望将列变为行或反之的情况。这不仅仅是转置,还涉及将多列汇总在一起或多次重复一行中的多个值,以实现表中所需的列和行布局。
输入数据
考虑以下输入数据,它显示了每个季度某种产品的区域销售额。我们使用以下给定的数据创建一个分隔文件 (CSV)。
Quarter,Region1,Region2,Region 3 Q1,124,421,471 Q2,415,214,584 Q3,417,321,582 Q4,751,256,95
加载输入数据
我们使用脚本编辑器加载上述输入数据,该编辑器通过按 Control+E 调用。选择选项 表格文件 并浏览输入文件。选择如下所示的选项后,单击下一步。
Crosstable 选项
在下一个窗口(文件向导 → 选项)中,单击 Crosstable 按钮。它会以不同的颜色突出显示 列。粉红色显示 限定符字段,它将在 属性字段 中的每个值的多行中重复出现。属性字段下的单元格值将被视为数据。单击"确定"。
交叉表转换
转换后的数据出现,其中所有区域字段都合并到一列,但每个季度的值都重复。
加载脚本
交叉表转换的加载脚本显示下面给出的命令。
交叉表数据
在创建表格框工作表对象使用菜单布局 → 新建工作表对象 → 表格框,我们得到以下输出。
QlikView - 垂直表
垂直表是 QlikView 中显示数据的最广泛使用的工作表对象。它们非常简单但功能强大,具有列重新排列、排序和背景着色等功能。
输入数据
让我们考虑以下输入数据,它代表不同产品线和产品类别的销售数字。
Product_Line,Product_category,Value Sporting Goods,Outdoor Recreation,5642 Food, Beverages & Tobacco,2514 Apparel & Accessories,Clothing,2365 Apparel & Accessories,Costumes & Accessories,4487 Sporting Goods,Athletics,812 Health & Beauty,Personal Care,6912 Arts & Entertainment,Hobbies & Creative Arts,5201 Arts & Entertainment,Paintings,8451 Arts & Entertainment,Musical Instruments,1245 Hardware,Tool Accessories,456 Home & Garden,Bathroom Accessories,241 Food,Drinks,1247 Home & Garden,Lawn & Garden,5462 Office Supplies,Presentation Supplies,577 Hardware,Blocks,548 Baby & Toddler,Diapering,1247 Baby & Toddler,Toys,257 Home & Garden,Pipes,1241 Office Supplies,Display Board,2177
加载脚本
使用脚本编辑器将上述数据加载到 QlikView 内存中。从文件菜单打开脚本编辑器或按 Control+E。从"文件中的数据"选项卡中选择"表格文件"选项,然后浏览包含上述数据的文件。出现以下屏幕。
单击"确定"并按"Control+R"将数据加载到 QlikView 的内存中
创建表格框
接下来,我们创建一个表格框类型的新工作表对象。我们按照如下所示的菜单操作。
选择列
QlikView 提示选择将在最终表格框中显示的列。我们选择所有列并使用提升或降级选项设置列的顺序。
选择显示样式
接下来,我们选择样式选项卡,为显示数据提供特定的背景颜色。 当前样式选项列出了许多预建样式。我们选择每两行带有条纹的睡衣红。
列重新排序
我们可以通过在列标题上按住鼠标按钮并将其拖动到所需位置来重新排序列的位置。
QlikView - 数据透视表
数据透视表广泛用于数据分析,以显示数据中多个维度的值的总和。 QlikView 的图表选项具有通过选择适当的图表类型来创建数据透视表的功能。
输入数据
让我们考虑以下输入数据,它代表不同产品线和产品类别的销售数据。
Product_Line,Product_category,Value Sporting Goods,Outdoor Recreation,5642 Food, Beverages & Tobacco,2514 Apparel & Accessories,Clothing,2365 Apparel & Accessories,Costumes & Accessories,4487 Sporting Goods,Athletics,812 Health & Beauty,Personal Care,6912 Arts & Entertainment,Hobbies & Creative Arts,5201 Arts & Entertainment,Paintings,8451 Arts & Entertainment,Musical Instruments,1245 Hardware,Tool Accessories,456 Home & Garden,Bathroom Accessories,241 Food,Drinks,1247 Home & Garden,Lawn & Garden,5462 Office Supplies,Presentation Supplies,577 Hardware,Blocks,548 Baby & Toddler,Diapering,1247 Baby & Toddler,Toys,257 Home & Garden,Pipes,1241 Office Supplies,Display Board,2177
加载脚本
使用脚本编辑器将上述数据加载到 QlikView 的内存中。从文件菜单打开脚本编辑器或按 Control+E。从"文件中的数据"选项卡中选择"表格文件"选项,然后浏览包含上述数据的文件。出现以下屏幕。
单击"确定"并按"Control+R"将数据加载到 QlikView 的内存中。
选择图表类型
接下来,我们使用图表向导选择数据透视表选项。单击下一步。
选择图表维度
在下一个屏幕中,我们选择 Product_Line 作为图表的第一个维度。
选择图表表达式
下一个屏幕提示我们选择图表表达式,我们选择值的总和。
选择图表格式
单击下一步后,我们得到以下屏幕选择图表格式,我们选择 Pyjama Green 作为样式和默认模式。
数据透视图数据
完成上述步骤后,我们将获得如下所示的最终图表。
QlikView - 集合分析
QlikView 的集合分析功能用于将不同工作表对象中的数据分成 许多集合,并保持其中一些集合中的值不变。简单来说,它创建了一个选项,不将某些工作表对象与其他工作表对象关联,而默认行为是所有工作表对象都相互关联。这有助于筛选一个工作表对象中的数据并在其他工作表对象中查看相应的结果,而选择为不同集合的工作表对象则根据其自己的过滤器显示值。
输入数据
让我们考虑以下输入数据,它代表不同产品线和产品类别的销售数字。
Product_Line,Product_category,Month,Value Arts & Entertainment,Hobbies & Creative Arts,Jan,5201 Arts & Entertainment,Paintings,Feb,8451 Arts & Entertainment,Musical Instruments,Jan,1245 Baby & Toddler,Diapering,Mar,1247 Baby & Toddler,Toys,Dec,257 Apparel & Accessories,Clothing,Feb,574 Apparel & Accessories,Costumes & Accessories,Apr,1204 Arts & Entertainment,Musical Instruments,Apr,3625 Baby & Toddler,Diapering,Apr,1281 Apparel & Accessories,Clothing,Jul,2594 Arts & Entertainment,Paintings,Sep,6531 Baby & Toddler,Toys,May,7421 Apparel & Accessories,Clothing,Aug,2541 Arts & Entertainment,Paintings,Oct,2658 Arts & Entertainment,Musical Instruments,Mar,1185 Baby & Toddler,Diapering,Jun,1209
加载脚本
使用脚本编辑器将上述数据加载到 QlikView 内存中。从文件菜单打开脚本编辑器或按 Control+E。从"文件中的数据"选项卡中选择"表格文件"选项,然后浏览包含上述数据的文件。屏幕显示如下。
创建表格框
使用菜单选项布局 → 新建工作表对象 → 表格框选择所有可用字段以创建表格框,并使用菜单选项布局 → 新建工作表对象 → 列表框创建包含月份字段的列表框。此外,创建一个直线图表,显示每个产品类别下的总销售额。
数据关联
现在,我们可以通过选择其中一个表中的某些值来观察这三个工作表对象之间的关联。让我们从月份列表框中选择月份四月和一月。我们可以在表格框和显示相关值的图表中看到值的变化。
克隆对象
接下来,我们克隆销售总额图表以生成一组与其他工作表对象不关联的新数据。右键单击图表销售总额,然后单击选项克隆,如下所示。同一图表的另一个副本出现在 QlikView 文档中。
集合表达式
接下来,我们选择图表 Sales Sum 的第二个副本,然后右键单击它以获取图表属性。我们创建一个名为 Sales values 的表达式,在 Definition 选项卡下编写公式,如下所示。
应用集合分析
完成上述步骤后,我们发现,当我们选择 6 月时,我们会在表格框和 Sales Sum 图表中获得相关值。但是,四月份的销售额不会改变,因为它基于集合表达式中的数据。
QlikView - 连接
QlikView 中的连接用于将两个数据集的数据合并为一个。QlikView 中的连接与 SQL 中的连接含义相同。只有符合连接条件的列和行值才会显示在输出中。如果您对连接完全陌生,您可能希望首先了解它们这里
输入数据
让我们考虑以下两个 CSV 数据文件,它们用作进一步说明的输入。
Product List: ProductID,ProductCategory 1,Outdoor Recreation 2,Clothing 3,Costumes & Accessories 4,Athletics 5,Personal Care 6,Hobbies & Creative Arts ProductSales: ProductID,ProductCategory,SaleAmount 4,Athletics,1212 5,Personal Care,5211 6,Hobbies & Creative Arts,1021 7,Display Board,2177 8,Game,1145 9,soap,1012 10,Beverages & Tobacco,2514
内连接
我们使用脚本编辑器加载上述输入数据,按 Control+E 即可调用该编辑器。选择选项 表格文件 并浏览输入文件。然后我们编辑脚本中的命令以在表格之间创建内连接。
内连接仅获取两个表中都存在的行。在本例中,将获取 产品列表 和 产品销售 表中可用的行。我们使用菜单 布局 → 新建工作表对象 → 创建 表格框表格框,我们选择要显示的所有三个字段 - ProductID、ProductCategory 和 SaleAmount。
左连接
左连接涉及从左侧表格中提取所有行并从右侧表格中提取匹配行。
加载脚本
Sales: LOAD ProductID, ProductCategory, SaleAmount FROM [C:\Qlikview\data\product_lists.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq); LEFT JOIN(Sales) LOAD ProductID, ProductCategory FROM [C:\Qlikview\data\Productsales.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
我们使用菜单布局 → 新建工作表对象 → 表格框创建一个表格框,其中我们选择要显示的所有三个字段(减去 ProductID、ProductCategory 和 SaleAmount)。
右连接
右连接涉及从右侧表格中提取所有行并从左侧表格中提取匹配行。
加载脚本
Sales: LOAD ProductID, ProductCategory, SaleAmount FROM [C:\Qlikview\data\product_lists.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq); RIGHT JOIN(Sales) LOAD ProductID, ProductCategory FROM [C:\Qlikview\data\Productsales.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
我们使用菜单布局 → 新建工作表对象 → 表格框创建一个表格框,其中我们选择要显示的所有三个字段 - ProductID、ProductCategory 和 SaleAmount。
外连接
外连接涉及从右侧表格以及左侧表格中提取所有行。
Load Script
Sales: LOAD ProductID, ProductCategory, SaleAmount FROM [C:\Qlikview\data\product_lists.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq); OUTER JOIN(Sales) LOAD ProductID, ProductCategory FROM [C:\Qlikview\data\Productsales.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
我们使用菜单布局 → 新建工作表对象 → 表格框创建一个表格框,我们选择要显示的所有三个字段 - ProductID、ProductCategory 和 SaleAmount。
QlikView - 保留
QlikView 中的保留命令用于合并两个数据集中的数据,使两个数据集都保留在内存中。它与我们在上一章中介绍的连接非常相似,除了两个主要区别之外。第一个区别是保留时的 − 两个数据集都保留在 QlikView 的内存中,而在连接中,加载语句仅生成一个数据集,您必须从中选择列。第二个区别是 −没有外部保持的概念,因为在连接的情况下我们有外部连接可用。
输入数据
让我们考虑以下两个 CSV 数据文件,它们用作进一步说明的输入。
Product List: ProductID,ProductCategory 1,Outdoor Recreation 2,Clothing 3,Costumes & Accessories 4,Athletics 5,Personal Care 6,Hobbies & Creative Arts Product Sales: ProductID,ProductCategory,SaleAmount 4,Athletics,1212 5,Personal Care,5211 6,Hobbies & Creative Arts,1021 7,Display Board,2177 8,Game,1145 9,soap,1012 10,Beverages & Tobacco,2514
内部保留
我们使用脚本编辑器加载上述输入数据,该编辑器通过按 Control+E 调用。选择选项 表格文件 并浏览输入文件。然后我们编辑脚本中的命令以在表格之间创建内部保留。
内部保留仅获取两个表格中都存在的行。在本例中,将获取 产品列表和产品销售 表格中可用的行。我们使用菜单 布局 → 新建工作表对象 → 创建表格框表格框。
首先,我们仅选择 productSales 表,该表为我们提供了要显示的字段 - ProductID、ProductCategory 和 SaleAmount。
接下来,我们选择 ProductList 数据集,该数据集为我们提供了字段 ProductID 和 ProductCategory。
最后,我们选择 所有表 选项并从所有表中获取所有可用字段。
以下报告显示了上述步骤中的所有表格框。
Left Keep
Left Keep 与 Left Join 类似,它会保留左侧表格中的所有行,同时保留 QlikView 内存中的数据集。
Left Keep 脚本
以下脚本用于使用 Left Keep 命令创建结果数据集。
productsales: LOAD ProductID, ProductCategory, SaleAmount FROM [C:\Qlikview\data\product_lists.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq); left keep(productsales) productlists: LOAD ProductID, ProductCategory FROM [C:\Qlikview\data\Productsales.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
左保留数据
当我们按上述方式更改脚本并使用 Control+R 刷新报告中的数据时,我们会在工作表对象中获得以下数据。
右保留
右保留类似于左连接,它会保留右侧表格中的所有行,同时保留 QlikView 内存中的数据集。
右保留脚本
以下脚本用于使用左保留命令创建结果数据集。
productsales: LOAD ProductID, ProductCategory, SaleAmount FROM [C:\Qlikview\data\product_lists.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq); right keep(productsales) productlists: LOAD ProductID, ProductCategory FROM [C:\Qlikview\data\Productsales.csv] (txt, codepage is 1252, embedded labels, delimiter is ',', msq);
右侧保留数据
当我们按上述方式更改脚本并使用 Control+R 刷新报告中的数据时,我们会在工作表对象中获得以下数据。
QlikView - 连接
QlikView 中的连接功能用于将行从一个表附加到另一个表。即使表的列数不同,也会发生这种情况。它与 Join 和 Keep 命令不同,因为它不会将两个表中的匹配行合并为一行。
输入数据
让我们考虑以下两个 CSV 数据文件,它们用作进一步说明的输入。请注意,第二个数据集有一个名为 Country 的附加列。
SalesRegionOld.csv ProductID,ProductCategory,Region,SaleAmount 1,Outdoor Recreation,Europe,4579 2,Clothing,Europe,4125 3,Costumes & Accessories,South Asia,6521 4,Athletics,South Asia,4125 5,Personal Care,Australia,5124 6,Arts & Entertainment,North AMerica,1245 7,Hardware,South America,456 SalesRegionNew.csv ProductID,ProductCategory,Region,Country,SaleAmount 6,Arts & Entertainment,North AMerica,USA,1245 7,Hardware,South America,Brazil,456 8,Home & Garden,South America,Brazil,241 9,Food,South Asia,Singapore,1247 10,Home & Garden,South Asia,China,5462 11,Office Supplies,Australia,Australia,577
加载脚本
我们使用脚本编辑器加载上述输入数据,该编辑器通过按 Control+E 调用。选择选项 表格文件 并浏览输入文件。然后我们编辑脚本中的命令以应用表格之间的连接。
接下来,我们将上述数据加载到 QlikView 的内存中,并使用菜单 布局 → 新建工作表对象 → 创建表格框表格框,我们选择所有可用的字段进行显示,如下所示。
连接数据
完成上述步骤后,我们将获得如下所示的表格框。请注意产品 ID 6 和 7 的重复行。连接不会消除重复项。
QlikView - 主日历
在 QlikView 中,很多时候我们需要创建一个日历参考对象,它可以链接到 QlikView 内存中存在的任何数据集。例如,您有一个表,它记录了销售金额和销售日期,但没有存储与该日期对应的工作日或季度。在这种情况下,我们创建一个主日历,它将根据任何数据集的需要提供季度、日期等其他日期字段。
输入数据
让我们考虑以下 CSV 数据文件,它们用作进一步说明的输入。
SalesDate,SalesVolume 3/28/2012,3152 3/30/2012,2458 3/31/2012,4105 4/8/2012,6245 4/10/2012,5816 4/11/2012,3522
加载脚本
我们使用脚本编辑器加载上述输入数据,按 Control+E 即可调用。选择选项 表格文件 并浏览输入文件。
接下来,我们将上述数据加载到 QlikView 的内存中,并使用菜单 布局 → 新建工作表对象 → 创建 表格框表格框,我们选择所有可用的字段来显示,如下所示。
创建主日历
接下来,我们通过在脚本编辑器中编写以下脚本来创建主日历。在这里,我们使用表 DailySales 作为常驻表,从中捕获最大和最小日期。我们使用常驻加载上方的第二个加载语句加载此范围内的每个日期。最后,我们有第三个加载语句,它从 SalesDate 值中提取年份、季度、月份等。
选择字段
在创建完整的加载脚本以及主日历后,我们创建一个表格框,使用菜单 布局 → 新建工作表对象 → 查看数据表格框
最终数据
最终输出显示使用销售数据和主日历创建的季度和月份值表格。
QlikView - 映射表
映射表是用于在两个表之间映射列值的表。它也被称为查找表,仅用于从其他表中查找相关值。
输入数据
让我们考虑以下输入数据文件,它代表不同地区的销售值。
ProductID,ProductCategory,Region,SaleAmount 1,Outdoor Recreation,Europe,4579 2,Clothing,Europe,4125 3,Costumes & Accessories,South Asia,6521 4,Athletics,South Asia,4125 5,Personal Care,Australia,5124 6,Arts & Entertainment,North AMerica,1245 7,Hardware,South America,456 8,Home & Garden,South America,241 9,Food,South Asia,1247 10,Home & Garden,South Asia,5462 11,Office Supplies,Australia,577
以下数据代表各个国家及其地区。
Region,Country Europe,Germany Europe,Italy South Asia,Singapore South Asia,Korea North AMerica,USA South America,Brazil South America,Peru South Asia,China South Asia,Sri Lanka
加载脚本
使用脚本编辑器将上述数据加载到 QlikView 内存中。从文件菜单打开脚本编辑器或按 Control+E。从 文件中的数据 选项卡中选择 表格文件 选项,然后浏览包含上述数据的文件。单击 确定 并按 Control+R 将数据加载到 QlikView 的内存中。
创建表格框
让我们为上述每个表格创建两个表格框,如下所示。这里我们无法获取销售区域报告中的国家/地区值。
创建映射表
以下脚本生成映射表,将销售表中的区域值与 MapCountryRegion 表中的国家/地区值进行映射。
表格图表
完成上述步骤并创建表格框以查看数据后,我们将获得国家/地区列以及销售表中的其他列。
QlikView - 循环引用
循环引用是指我们可以使用两个或更多不同的路径从一个表遍历到另一个表。这意味着您可以直接使用列将表 1 与表 2 连接起来,也可以先将表 1 与表 3 连接起来,然后再将表 3 与表 2 连接起来。这可能会导致加载这三个表的数据模型形成的输出结果不正确。一旦识别出循环引用,QlikView 就会阻止将此类数据加载到其内存中。
输入数据
让我们考虑以下三个 CSV 数据文件,它们用作进一步说明的输入。
SalesCountries: ProductID,ProductCategory,Country,SaleAmount 1,Outdoor Recreation,Italy,4579 2,Clothing,USA,4125 3,Costumes & Accessories,South Korea,6521 4,Athletics,Japan,4125 5,Personal Care,Brazil,5124 6,Arts & Entertainment,China,1245 7,Hardware,South America,456 8,Home & Garden,Peru,241 9,Food,India,1247 10,Home & Garden,Singapore,5462 11,Office Supplies,Hungary,577 ProductCountry: ProductID, Country 3,Brazil 3,China 2,Korea 1,USA 2,Singapore 7,Sri Lanka 1,Italy
加载脚本
我们使用脚本编辑器加载上述输入数据,该编辑器通过按Control+E调用。选择选项表格文件并浏览输入文件。
数据加载
创建上述脚本后,我们使用命令Control+R将数据加载到 QlikView 的内存中。这时,我们收到错误提示,提示正在加载的表中存在循环。
数据模型
要找到上述警告的确切原因,我们可以使用表查看器的菜单命令 - Control+T 查看数据模型。出现以下屏幕,其中清楚地显示了循环引用。这里可以使用字段 Region 直接实现 RegionCountry 和 SalesRegion 之间的连接。也可以通过首先转到 ProductCountry 表,使用字段 Country,然后将 ProdcutID 与 Salesregion 进行映射来实现。
解决循环引用
可以通过重命名数据集中的某些列来解决上述循环引用,这样 QlikView 就不会自动使用列名在表之间形成关联。为此,我们将 RegionCountry 中的 country 列重命名为 SalesCountry。在数据集 ProdcuCountry 中,我们将 Country 列重命名为 ProductCountry。
修正后的数据模型
使用命令 Control+T 可以看到重命名上述列后的修正后的数据模型。现在我们可以看到表之间的关系没有形成循环。
按 Control+R 重新加载数据不再会发出警告,我们可以使用此数据创建报告。