使用参数
参数可以方便地存储和管理可重复使用的值。
借助参数,可以灵活地根据查询的值动态更改查询的输出,并可用于以下用途:
- 更改特定转换和数据源函数的参数值。
- 自定义函数中的输入。
可以在“管理参数”窗口中轻松管理参数。 若要访问“管理参数”窗口,请在“主页”选项卡中选择“管理参数”中的“管理参数”选项。
创建参数
Power Query 提供了两种简单的方法来创建参数:
在现有查询中:右键单击其值为简单非结构化常量(例如日期、文本或数字)的查询,然后选择“转换为参数”。
也可以右键单击参数并选择“转换为查询”,将参数转换为查询。
使用“管理参数”窗口:从“主页”选项卡的“管理参数”下拉菜单中选择“新建参数”选项,或启动“管理参数”窗口,然后选择顶部的“新建”以创建参数。 填写此表单,然后选择“确定”创建新参数。
创建参数后,始终可以返回到“管理参数”窗口,随时修改任何参数。
参数属性
参数存储的值可用于 Power Query 中的转换。 除了参数的名称及其存储的值之外,还具有提供元数据的其他属性。 参数的属性包括:
名称:提供此参数的名称,以便于识别此参数并区别于其他可能创建的参数。
说明:显示参数信息时,参数名称旁边会显示说明,帮助指定参数值的用户了解其用途及语义。
必需:复选框指示后续用户是否可以指定是否必须提供参数值。
类型:指定参数的数据类型。 建议始终设置参数的数据类型。 若要详细了解数据类型的重要性,请转到数据类型。
建议值:向用户提供从可用选项中为”当前值“选择值的建议:
任何值:当前值可以是任何手动输入的值。
值列表:提供类似于表的简单体验,以便可以定义建议值列表,供以后从”当前值“中进行选择。 选择此选项后,将出现名为“默认值”的新选项。 此时,可以选择该参数的默认值,也就是在引用该参数时显示给用户的默认值。 该值当前值不同,后者是存储在参数内部的值,可以在转换中作为参数传递。 使用值列表提供显示在“默认值”和“当前值”字段中的下拉菜单,可以从建议的值列表中选择其中一个值。
注意
你仍然可以手动键入要传递给参数的任何值。 建议值列表只是简单的建议。
查询:使用列表查询(其输出为列表的查询)提供建议值列表,供以后为当前值选择这些值。
当前值:存储在此参数中的值。
何处使用参数
参数的使用方式多种多样,但有两种情况比较常见:
- Step 参数:可以使用参数作为从用户界面 (UI) 驱动的多个转换的参数。
- 自定义函数参数:可以通过查询创建新函数,并引用参数作为自定义函数的参数。
在接下来的章节中,将介绍这两种情况的示例。
Step 参数
若要启用此功能,请先转到 Power Query 编辑器中的“视图”选项卡,然后选择“参数”组中的“始终允许”选项。
例如,以下订单表包含”OrderID“、”单位“和”利润率“字段。
在此示例中,创建一个新参数,名称为最小利润率,类型为小数,当前值为 0.2。
转到“订单”查询,然后在“利润率”字段中选择“大于”筛选器选项。
在“筛选行”窗口中,有一个包含所选字段数据类型的按钮。 从此按钮的下拉菜单中选择“参数”选项。 从数据类型按钮旁边的字段选择中,选择要传递给此参数的参数。 在本例中是”最小利润率“参数。
选择“确定”后,将使用参数的“当前值”筛选表。
如果将”最小利润率“参数的”当前值“修改为 0.3,则订单查询将立即更新,并且仅显示利润率高于 30% 的行。
提示
Power Query 中的许多转换都允许从下拉菜单中选择参数。 建议经常查找并利用参数所能提供的优势。
自定义函数参数
使用 Power Query,可以通过简单的单击从现有查询创建自定义函数。 在前面的示例中,右键单击“订单”查询并选择“创建函数”。 此操作将启动新的“创建函数”窗口。 在此窗口中,为新函数命名,它会告诉你查询中引用的参数。 这些参数用作自定义函数的参数。
可以随心所欲地为此新函数命名。 出于演示目的,此新函数的名称为 MyFunction。 选择“确定”后,将使用新函数的名称在“查询”窗格中创建一个新组。 在此组中,你将找到找到用于函数的参数、用于创建函数的查询以及函数本身。
若要测试此新函数,请在“最小利润率”标签下的字段中输入值(如 0.4)。 然后,选择”调用“按钮。 这将创建一个名为”调用函数“的新查询,从而有效地传递值 0.4 用作函数参数,并仅提供利润率高于 40% 的行。
若要详细了解如何创建自定义函数,请转到创建自定义函数。
多值或列表参数
多值参数或列表参数是一种仅在 Power Query Online 中可用的新型参数。 本部分将介绍如何创建新的列表参数,以及如何在查询中使用该参数。
在前面的示例中,将最小利润率的当前值从 0.3 更改为 0.1。 新目标是创建一个列表参数,该参数可以保存要分析的订单的订单号。 若要创建新参数,请转到“管理参数”对话框,然后选择“新建”创建新参数。 使用以下信息填写此新参数:
- 名称:有趣的订单
- 说明:对特定分析有意义的一组订单号
- 必需: True
- 类型:列表
定义这些字段后,将弹出一个新网格,可在其中输入要为参数存储的值。 本例中这些值为 125、777 和 999。
注意
虽然此示例使用数字,但还可以将其他数据类型存储在列表中,例如文本、日期、日期时间等。 详情请见:Power Query 中的数据类型
提示
如果要更好地控制列表参数中使用的值,始终可以创建包含常量值的列表,并将列表查询转换为本文前面展示的参数。
新的“有趣的订单”列表参数准备好后,请返回“订单”查询。 选择 OrderID 字段的自动筛选菜单。 选择数字筛选器>”在“。
选择此选项后,将显示新的“筛选行”对话框。 在此处,可以从下拉菜单中选择列表参数。
注意
列表参数可以使用”在“或”不在“选项。 ”在“只允许按列表中的值进行筛选。 ”不在“恰恰相反,尝试筛选列以获取与参数中存储的值不相等的所有值。
选择“确定”后,将返回到查询。 在这里,查询已使用已创建的列表参数进行筛选,结果只保留了OrderID 等于 125、777 或 999 的记录。