# 教程 - 表格配方入门

本教程将介绍一个基本的数据准备用例，让你更加熟悉构建表格配方所需的不同步骤，以及所提供的不同可能性。使用所附数据集，您就可以重现本教程的所有步骤。

在此场景中，假设您正在查看一家宠物食品在线商店的销售数据。该数据样本包括来自世界各地的客户，以及他们的姓名、订单日期、原籍国、年龄范围等信息。比方说，您想准备数据，以便重点关注来自法国的客户。您将进行细微的格式更改，处理订单日期，分离出特定年龄段的法国客户的所有数据，最后将数据导出到一个新文件，该文件可作为分析应用程序等的数据源。

## 先决条件

下载此存档并将其解压到您的桌面：

[表格配方初学者教程](https://help.qlik.com/zh-CN/cloud-services/tutorials/TableRecipeBeginnerTutorial.zip)

该存档内含完成本教程所需的 orders\_pet\_food.csv 数据文件。

## 将源文件添加到目录中

在开始创建表格配方之前，需要在分析平台中提供软件包中的文件。将数据源添加到目录中：

1. 从启动器菜单中选择分析 &gt; 目录。

2. 单击右上角的新建按钮，然后选择数据集。

3. 在打开的窗口中，单击上传数据文件。

4. 将桌面上的教程文件拖放至添加文件窗口的专用区域，或单击浏览从其位置选择它。

5. 单击上传。

## 创建表格配方并选择源

源已设置完毕，您可以开始创建表格配方了。

1. 从启动器菜单开始，选择分析 &gt; 准备数据。

2. 点击表格配方磁贴或点击创建新 &gt; 表格配方。

3. 在创建新表格配方窗口中，设置您的表格配方信息如下，然后点击创建：

   * 表格配方教程作为名称。

   * 个人作为空间。

   * 表格配方，准备以法国客户为重点的销售数据作为描述。

   * 教程作为标签。

   空的表格配方打开，但在您执行任何操作之前，系统会要求您从您的数据目录中选择源文件。

4. 使用过滤搜索查找之前上传的 order\_pet\_food.csv 数据集，并选择其名称前的复选框。

5. 单击下一步。

6. 查看摘要中的数据集和字段，然后单击加载到表格配方中。

数据集中的数据现在以表格形式显示，其中字段显示为列。您可以轻松浏览数据集的内容，并且您将开始使用函数准备数据。

![将教程数据视为表格配方](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/TableRecipe/tutorial_creating_table_recipe_1.png)

## 清理订单类型

查看样本时，我们可以注意到，在列出所订购宠物食品类型的订单列中，食品一词是多余且有点不必要的。为了提高简洁性和清晰度，您将使用删除部分文本功能删除单词food。

![我们将删除部分文本的订单列](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/TableRecipe/tutorial_remove_part_of_text_1.png)

1. 单击order列的标题以选择其内容。

2. 在左侧面板的功能列表栏中，选择字符串类别中的移除部分文本功能。

   该功能的配置表单在右侧面板中打开，其中要处理的列字段已选中。

3. 从运算符下拉列表中选择 包含。

4. 在值字段中，输入Food。

5. 单击应用。

   列中所有出现Food的地方都已被移除，订单类型现在更易于阅读。

   ![移除部分文本功能对订单列的影响](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/TableRecipe/tutorial_remove_part_of_text_2.png)

完成此操作后，您可以看到该步骤现在已列在右侧面板的配方中。毕竟，表配方中的配方，就像任何烹饪食谱一样，是应用于您的数据的准备步骤列表。您可以单击一个步骤以查看已应用的配置，甚至可以编辑它。

![该步骤已添加到配方中](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/TableRecipe/tutorial_remove_part_of_text_3.png)

## 将客户姓名拆分为两列

客户的名字和姓氏目前包含在一列中。为了更好地分离信息，配方的另一步将是使用 拆分列 功能将名称拆分为两列。

![需要拆分为两列的全名](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/TableRecipe/tutorial_split_column_1.png)

1. 单击 full\_name 列的标题以选择其内容。

2. 在左侧面板的功能列表栏中，选择字符串类别中的拆分列功能。

3. 在部分字段中，输入2，然后从分隔符下拉列表中选择空格。

4. 单击应用。

   创建了两个新列，每个列仅包含全名的一部分。这两个新列具有自动生成的名称，您将更改这些名称以提高清晰度和一致性。

   ![全名拆分为两个新列](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/TableRecipe/tutorial_split_column_2.png)

5. 选择 full\_name-split\_1 列，并从函数列表中选择 重命名列 函数。

   ![使用函数列表重命名列](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/TableRecipe/tutorial_split_column_3.png)

6. 在新列名称字段中，输入first\_name，然后点击应用。

   您还将使用另一种方法，直接从列菜单中重命名第二列。在这两种情况下，都会创建一个配方步骤。

7. 在 full\_name-split\_2 列的标题中，点击 the 更多 icon 以显示列菜单并选择 重命名列。

   ![使用列菜单重命名列](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/TableRecipe/tutorial_split_column_4.png)

8. 在新列名称字段中，输入last\_name并点击应用。

   您现在拥有两个包含名字和姓氏的干净列。初始的full\_name列不再有任何用途，您将能够直接删除它。

   ![名字和姓氏拆分为两列](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/TableRecipe/tutorial_split_column_5.png)

9. 在 full\_name 列的标题中，点击 the 更多 icon 以显示列菜单，选择 删除列 并点击 应用。

## 日期格式设置

表格配方也提供了许多用于处理日期的功能。在数据集中，有三列包含日期，用于跟踪客户下订单的日期、订单发货的日期以及客户收到订单的日期。在进一步利用这些数据之前，第一步将是转换并格式化这些数据，以便其可用。由于本教程的目的是关注法国客户，因此您将对当前为 YYYY-MM-DD 格式的这些日期应用法国日期格式。

![我们将格式化的三列日期](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/TableRecipe/tutorial_formatting_dates_1.png)

1. 选择 order\_date 列，然后在按住 Shift 键的同时，单击 reception\_date 列标题。

   包括 shipment\_date 列在内的三列已被选中。 Ctrl + click 快捷方式也适用于选择多列。

2. 从函数列表中，在 Dates 类别中选择 Convert to date 函数。

3. 从输入格式下拉列表中，选择自动，然后点击应用。

   此函数旨在转换您表中的数据，以便系统将其正确解释为`date`。这将使您能够执行更多基于日期的操作。在这种情况下，您将能够安全地更改这三列中的日期格式。

4. 选择 order\_date 列，然后从函数列表中的 建议 中选择 格式化日期 函数。

   根据当前所选列的类型，函数列表中将动态建议相关函数。您还可以使用搜索字段通过其名称或相关关键字查找函数。

   ![动态函数建议](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/TableRecipe/tutorial_formatting_dates_4.png)

   到目前为止，在配置函数时，要处理的列字段已根据当前选定的列预先填充。下一步将展示在多个列上应用函数的另一种方法。

5. 打开要处理的列下拉列表，然后选择order\_date、shipment\_date和reception\_date复选框。

   ![在多个列上应用函数](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/TableRecipe/tutorial_formatting_dates_2.png)

6. 从日期格式下拉列表中，选择自定义。

7. 在日期模式字段中，输入DD-MM-YYYY，这是法国官方日期格式。

8. 单击应用。

所有这三列现在都采用正确的格式，这使得目标受众更容易阅读。

![日期列采用新的法语格式](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/TableRecipe/tutorial_formatting_dates_3.png)

## 计算订单处理时间

现在，您的日期列已正确格式化，您将使用 计算日期差 函数，计算客户下订单后需要多少天才能收到订单。

1. 选择 order\_date 列。

2. 在左侧面板的功能列表栏中，选择日期类别中的计算日期差功能。

3. 从时间单位下拉列表中，选择 天。

4. 从直到下拉列表中，选择其他列。

   您也可以使用此函数计算与特定日期的时间差，但在这种情况下，您将比较两列。

5. 从列下拉列表中，选择reception\_date。

6. 在新列名称字段中，输入time\_to\_receive。

7. 单击应用。

   在order\_date 列的右侧创建了一个新列，其中包含订单日期和接收日期之间的天数。为了保持数据集的整洁和可读性，您将把新的time\_to\_receive列移动到三个日期列的右侧。

   ![包含天数日期差的新列](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/TableRecipe/tutorial_calculating_time_since_1.png)

8. 将 time\_to\_receive 列的标题拖放到 reception\_date 列的右侧。

   ![包含日期差的列，位于其他日期列之后](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/TableRecipe/tutorial_calculating_time_since_2.png)

在表格配方中，您还可以利用分析功能来深入了解当前数据。例如，当选中time\_to\_receive列时，您可以在左下角的数据分布面板中看到一些有用的信息。将显示该列数值的图形表示，您会看到客户收到订单的平均时间在六到七天之间。

![收到货件的平均天数](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/TableRecipe/tutorial_calculating_time_since_3.png)

## 添加国家/地区快速筛选器

假设您想要将国家/地区名称转换为大写，但仅限于法国。您将首先在国家/地区列上应用快速筛选器，然后仅对匹配的行应用该函数。

1. 在国家/地区列中，右键单击值法国的其中一个出现项，然后从打开的菜单中选择筛选具有此值的行。

   ![使用快速操作菜单创建筛选器](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/TableRecipe/tutorial_quick_filter_1.png)

   您可以在上方看到筛选器已正确应用的数据，使用 `is equal to` 运算符，并且现在只显示包含值 France 的行。

   ![筛选器已应用于国家/地区列](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/TableRecipe/tutorial_quick_filter_2.png)

2. 在左侧面板的功能列表中，选择字符串类别中的更改为大写功能，然后单击应用。

   该函数仅应用于筛选后的行，如您在步骤摘要中看到的。由于值现在为大写，它们不再与基于原始大小写的筛选器匹配，因此此时网格为空是正常的。

   ![应用了筛选器的函数配置摘要](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/TableRecipe/tutorial_quick_filter_3.png)

   您现在将清除筛选器，然后再继续。

3. 要移除筛选器，请直接点击筛选器中的叉号，或使用清除所有选项。

所有行现在再次显示，但现在只有法国的出现项是大写。

## 调整配方步骤

再次查看国家/地区列，您会注意到并非所有“法国”的出现都实际更改为大写。由于您之前创建的筛选器是基于精确的France值，因此其他带有拼写错误的出现（例如下面所示的Franc）未包含在函数范围内。

准备工作的下一步是修正错别字，并使用表格配方的步骤重新排序功能，将新的配方步骤移到大写转换之前。因为在表格配方中，一个步骤会影响所有后续步骤，这样做，您将自动将 更改为大写 功能重新应用到所有已修正的值。

![在 France 的某些出现中存在错别字。](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/TableRecipe/tutorial_reordering_steps_1.png)

1. 选择国家/地区列。

2. 在左侧面板的功能列表栏中，选择字符串类别中的搜索和替换功能。

3. 从运算符下拉列表中选择等于。

4. 在值字段中，输入法国。

5. 从替换下拉列表中，选择将整个单元格替换为替换值。

6. 在“替换为”字段中，输入法国。

7. 单击应用。

   拼写错误现已修复，但仍不是大写。您无需像以前一样重新应用相同的功能，只需重新排列配方中的步骤。

   ![使用查找和替换修复拼写错误](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/TableRecipe/tutorial_reordering_steps_2.png)

8. 在右侧的配方面板中，通过拖放将搜索和替换步骤移动到更改为大写步骤之前。

   ![将搜索和替换步骤移动到大写格式化步骤之前](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/TableRecipe/tutorial_reordering_steps_3.png)

   原本在第11位的搜索和替换步骤现在位于第10位，这一次，所有出现的“France”（包括有拼写错误的）都以大写形式显示。

   ![](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/TableRecipe/tutorial_reordering_steps_4.png)

## 筛选特定范围的客户

您的配方快完成了。清理并改进数据集后，您现在将提取仅与特定年龄范围的法国客户相关的数据。为此，您将再次创建筛选器，但这次会稍微复杂一些，通过组合两个条件。

1. 点击表格左上方的筛选器按钮。

2. 在第一个筛选器行中，从列下拉列表中选择国家/地区，将等于作为运算符，并以大写形式输入FRANCE作为值。

3. 单击添加筛选器。

   第二行变为可用。

4. 在第二个筛选器行中，从列下拉列表中选择age\_range，将is equal to选作运算符，并输入18-25作为值。

   组合筛选器时，它们之间的运算符是`AND`。

5. 单击应用。

   ![对数据应用两个筛选器](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/TableRecipe/tutorial_filters_1.png)

   您可以在表格上方看到这两个筛选器当前已应用，并且表格中仅显示匹配的行。食谱的最后一步是删除数据集中所有不匹配的行，只保留年龄在18到25岁之间的法国客户数据。

   ![国家和年龄筛选器已应用](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/TableRecipe/tutorial_filters_2.png)

6. 在左侧面板的功能列表中，选择常规类别中的保留筛选的行功能，然后单击应用。

您现在已完成您的表格配方。数据的范围和大小已缩小，但更易于阅读，并针对特定受众。此外，您还获得了关于客户接收订单所需时间的信息。

![仅保留匹配筛选条件的数据后的结果数据](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/TableRecipe/tutorial_filters_3.png)

## 设置目标并运行配方

既然数据已经准备好，例如可以在应用程序中使用，剩下的唯一事情就是配置如何运行和导出结果数据。您的表格配方结果可以不同文件格式直接输出到目录，从而在 Qlik Cloud 生态系统中轻松重用。在此场景中，您将运行并导出准备好的数据作为 .qvd 文件。

1. 在 表格配方 面板的目标部分中，配方步骤下方，单击 设置。

2. 在空间下拉列表中，选择个人。

3. 在文件名字段中输入 tutorial\_output。

4. 在扩展下拉列表中，选择 .qvd。

5. 单击应用。

   ![教程的目标配置](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/TableRecipe/tutorial_target_1.png)

   您的表格配方现已完成且有效，如标题条形中的状态所示。

6. 单击窗口右上方的运行配方按钮。

   打开一个模态窗口，显示运行进度。

   ![正在运行以输出数据的配方](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Resources/Images/TableRecipe/tutorial_target_2.png)

   一段时间后，窗口关闭，并打开一个通知，告诉你运行是否成功。表格配方的输出现在可以在您的目录中找到，或者在表格配方概览面板的输出部分中找到。

   所有运行的状态也可以在运行历史记录部分中找到。

## 下一步

您已经学会了如何将源数据导入目录，建立一个简单的表格配方来筛选和改进您的数据，并将您准备的结果导出为即用文件。

要了解在自己的用例中使用表格配方的多种方法，您可以查看 [表配方函数](https://help.qlik.com/zh-CN/cloud-services/Subsystems/Hub/Content/Sense_Hub/TableRecipe/list-of-table-recipe-functions.htm) 的完整列表。

要了解如何在分析应用程序中使用准备好的数据，请参阅[创建分析和数据可视化](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/Introduction/creating-analytics-and-visualizing-data.htm)。