自 2017 年 4 月发布的 Power BI Desktop 起,只需提供新列的一个或多个示例值,即可使用查询编辑器向模型添加新的数据列。 可以根据当前所选内容,或通过根据给定表中的所有(或选定)列提供输入数据,创建新列示例。

这种方法有助于轻松快速地创建新列,非常适用于以下情形:

  • 你知道自己想要在新列中获得的数据结果,但不确定通过哪种转换(或一系列转换)可以实现目的。
  • 你已知道自己需要执行的转换,但不确定在 UI 中的什么位置进行单击或选择,从而执行这些转换。
  • 你知道在“M”中使用“自定义列”表达式所需的转换的全部信息,但无法在 UI 中单击或添加其中一个(或多个)表达式。

通过示例添加列功能使用起来非常简单。 在接下来的几个部分中,我们就来看看如何轻松地使用这项功能。

使用查询编辑器通过示例添加新列

若要通过示例创建新列,请启动“查询编辑器”。 为此,可以在 Power BI Desktop 的“开始”功能区中选择“编辑查询”。

在本文中,我们将使用以下维基百科文章中的数据(可以单击下面的链接,自行获取数据,然后跟着我们一起操作):

启动“查询编辑器”且已加载部分数据后,便可以开始通过示例添加列。 若要添加新列,请在“查询编辑器”中依次选择功能区上的“添加列”选项卡和“通过示例添加列”。 可以选择下拉列表中的“通过所有列”(如果只选择了按钮,而未选择下拉列表,此为默认值)或“通过所选内容”。 在本文中,我们将一步步演示选择“通过所有列”的相关操作。

“通过示例添加列”窗格

选择通过示例添加新列后,便会看到一个新窗格,其中显示了当前表中的列(可能需要滚动才能查看全部列)。 右侧还会显示新的“第 1 列”,这就是 Power BI Desktop 根据示例创建的列。 新的“第 1 列”标题下方是空白单元格,可以在其中键入示例,以便 Power BI 能够用来创建与示例匹配的规则和转换。

另请注意,这是“查询设置”窗格中的“已应用步骤”。 和以往一样,查询编辑器会记录转换步骤,并依序向查询应用这些步骤。

这就是“通过示例添加列”窗格,主要分为以下四个区域:

  1. 包含功能或转换的简要说明的“命令栏”。
  2. 有助于 Power BI 改进此功能的“发送反馈”选项。
  3. 用于提交转换并添加列或取消上述操作的“确定”和“取消”按钮。
  4. 新列区域,可以在任意一行中键入示例值(向 Power BI 提供示例),从而与相应行的其他列相关联。

在新列中键入示例时,Power BI 会根据检测到的转换让你预览要创建的列。 例如,我们在第一行中键入了“Alabama”,对应于表中第一列的“Alabama”值。 按 Enter 键后,Power BI 便会立即根据此值填充列。

不过,接着我们转到包含“Massachusetts[E]”的行,并删除了最后的“[E]”部分(因为我们不需要这一部分),Power BI 检测到了这一更改,并使用示例创建了转换。 请注意,窗格的中上方对转换进行了说明。

如果继续提供示例,查询编辑器会将其添加到转换中。 如果感到满意,可以选择“确定”提交更改。

观看“通过示例添加列”的实际操作

想看看此功能的实际效果? 下面的视频展示了这项功能的实际运用(使用此示例前面提供的数据源)。 请仔细观看,自己跟着视频操作一下!

注意事项和限制

虽然使用“通过示例添加列”时有许多转换可用,但并不是所有转换都包含在内。 下面列出了支持的全部转换。

  • 引用

    • 引用特定列(包含截断、清理(截至 2017 年 6 月)和大小写转换)
  • 文本转换

    • 合并(支持合并文本字符串和整个列值)
    • 替换
    • 长度
    • 提取
      • 第一个字符
      • 最后一个字符
      • 范围
      • 分隔符前的文本
      • 分隔符后的文本
      • 分隔符之间的文本
    • 以下受支持的文本转换从 Power BI Desktop 2017 年 6 月版本开始提供:
      • 长度

注意:对于所有文本转换,都要考虑是否可能需要截断、清理(截至 2017 年 6 月)或对列值应用大小写转换。

  • 日期转换

    • 每周的某一日
    • 周几名称
    • 每年的某一日
    • 月份
    • 月份名称
    • 每年的某一季度
    • 每月的某一周
    • 每年的某一周
    • 年份
  • 以下受支持的其他日期转换从 Power BI Desktop 2017 年 6 月版本开始提供:

    • 年限
    • 年份开始值
    • 年份结束值
    • 月份开始值
    • 月份结束值
    • 季度开始值
    • 一个月的某些日
    • 季度结束值
    • 星期开始值
    • 星期结束值
    • 每月的某一日
    • 一天开始值
    • 一天结束值
  • 时间转换

    • 小时
    • 分钟
  • 日期/时间/时区转换 - 以下受支持的转换从 Power BI Desktop 2017 年 7 月版本开始提供:

    • 本地时间

注意:对于所有日期和时间转换,都要考虑是否可能需要将列值转换成日期或时间或日期和时间。

  • 数字转换 - 以下受支持的转换从 Power BI Desktop 2017 年 7 月版本开始提供:
    • 绝对值
    • 反余弦
    • 反正弦
    • 反正切
    • 转换为数字
    • 余弦
    • 多维数据集
    • 求幂
    • 阶乘
    • 整除
    • 为偶数
    • 为奇数
    • 自然对数
    • 以 10 为底数的对数
    • 取模
    • 向下舍入
    • 向上舍入
    • 符号
    • 正弦
    • 平方根
    • 平方
    • 求和
    • 正切