示例列 - Power Query 中的人工智能

我的 YouTube 频道上观看次数最多的视频之一是有关 Microsoft Excel 中的 Flash 填充的视频。 这个工具的本质是,如果你需要以某种方式转换你的源数据,那么你只需要开始在相邻的列中输入你想要得到的结果。 在手动键入几个单元格(通常 2-3 个就足够了)之后,Excel 会“理解”您需要的转换逻辑并自动继续您键入的内容,为您完成所有单调的工作:

效率的精髓。 我们都非常喜欢的神奇的“做对”按钮,对吧?

事实上,Power Query 中有一个类似工具的工具——它被称为 示例中的列 (来自示例的列). 实际上,这是 Power Query 中内置的一个小型人工智能,可以快速从您的数据中学习,然后对其进行转换。 让我们仔细看看它在几个实际场景中的能力,以了解它在实际任务中对我们有用的地方。

示例 1. 粘贴/剪切文本

假设我们在 Excel 中有这样一个“智能”表,其中包含员工数据:

示例列 - Power Query 中的人工智能

以标准方式将其加载到 Power Query 中 - 使用按钮 从表/范围 标签 时间 (数据——来自表/范围).

假设我们需要为每个员工添加一个包含姓氏和首字母缩写的列(第一个员工的 Ivanov SV 等)。 要解决此问题,您可以使用以下两种方法之一:

  • 右键单击包含源数据的列标题并选择命令 从示例中添加列 (从示例中添加列);

  • 选择一个或多个包含数据的列,然后在选项卡上 添加列 选择一个团队 示例中的列. 在这里,在下拉列表中,您可以指定是否需要分析所有或仅选定的列。

然后一切都很简单——在右侧出现的列中,我们开始输入所需结果的示例,Power Query 中内置的人工智能试图理解我们的转换逻辑并自行继续:

示例列 - Power Query 中的人工智能

顺便说一句,您可以在此列的任何单元格中输入正确的选项,即不一定是自上而下和连续。 此外,您稍后可以使用标题栏中的复选框轻松地在分析中添加或删除列。

注意窗口顶部的公式——这是智能 Power Query 为获得我们需要的结果而创建的。 顺便说一句,这是该工具与 即时填充 在 Excel 中。 即时填充就像一个“黑匣子”——它们不会向我们展示转换的逻辑,而只是给出现成的结果,我们认为它们是理所当然的。 在这里,一切都是透明的,您始终可以绝对清楚地了解数据到底发生了什么。

如果您看到 Power Query “抓住了这个想法”,那么您可以放心地按下按钮 OK 或键盘快捷键 按Ctrl+输入 – 将创建一个自定义列,其中包含 Power Query 发明的公式。 顺便说一句,以后可以轻松地将其编辑为常规手动创建的列(使用命令 添加列 - 自定义列) 通过单击步骤名称右侧的齿轮图标:

示例列 - Power Query 中的人工智能

示例 2:句子中的大小写

如果您右键单击带有文本的列标题并选择命令 转型 (转换),然后您可以看到三个负责更改寄存器的命令:

示例列 - Power Query 中的人工智能

方便又酷,但是在这个列表中,例如,我个人一直缺少一个选项 - 句子中的大小写,当大写(大写)不是每个单词的第一个字母,而只是单元格中的第一个字母,并且This 以小写(小)字母显示时的其余文本。

这个缺失的功能很容易用人工智能实现 示例中的列 – 只需为 Power Query 输入几个选项​​,以同样的精神继续:

示例列 - Power Query 中的人工智能

作为这里的公式,Power Query 使用了一堆函数 文本.Upper и 文本.下,将文本分别转换为大写和小写,以及函数 文本.开始 и 文本.Mid – Excel 函数 LEFT 和 PSTR 的类似物,能够从左侧和中间的文本中提取子字符串。

示例 3. 单词的排列

有时,在处理接收到的数据时,有必要以给定的顺序重新排列单元格中的单词。 当然,你可以通过分隔符将列分成单独的单词列,然后按照指定的顺序粘回去(不要忘记添加空格),但要借助工具 示例中的列 一切都会容易得多:

示例列 - Power Query 中的人工智能

示例 4:只有数字

另一个非常重要的任务是从单元格的内容中只提取数字(数字)。 和以前一样,将数据加载到 Power Query 后,转到选项卡 添加列 - 示例中的列 并手动填写几个单元格,以便程序了解我们想要得到的确切内容:

示例列 - Power Query 中的人工智能

宾果!

同样,值得查看窗口顶部以确保 Query 正确生成了公式——在这种情况下,它包含一个函数 文本。 选择,正如您可能猜到的那样,它根据列表从源文本中提取给定的字符。 随后,如果需要,当然可以在编辑栏中轻松编辑此列表。

示例 5:仅文本

与前面的示例类似,您可以拉出,反之亦然——仅删除文本,删除所有数字、标点符号等。

示例列 - Power Query 中的人工智能

在这种情况下,使用了一个含义已经相反的函数——Text.Remove,它根据给定的列表从原始字符串中删除字符。

示例 6:从字母数字粥中提取数据

Power Query 还可以在更困难的情况下提供帮助,当您需要从单元格中的字母数字粥中提取有用信息时,例如,从银行对帐单上的付款目的描述中获取帐号:

示例列 - Power Query 中的人工智能

请注意,Power Query 生成的转换公式可能非常复杂:

示例列 - Power Query 中的人工智能

为了便于阅读和理解,可以使用免费的在线服务将其转换为更健全的形式。 电源查询格式化程序:

示例列 - Power Query 中的人工智能

非常方便的东西——尊重创作者!

示例 7:转换日期

工具 示例中的列 也可以应用于日期或日期时间列。 当您输入日期的第一个数字时,Power Query 将帮助显示所有可能的转换选项的列表:

示例列 - Power Query 中的人工智能

因此,您可以轻松地将原始日期转换为任何奇特的格式,例如“年-月-日”:

示例列 - Power Query 中的人工智能

示例 8:分类

如果我们使用该工具 示例中的列 对于具有数字数据的列,它的工作方式不同。 假设我们将员工测试结果加载到 Power Query 中(条件分数在 0-100 范围内),并且我们使用以下条件等级:

  • 大师 - 得分超过 90 的人
  • 专家 - 得分从 70 到 90
  • 用户 - 从 30 到 70
  • 初学者——得分低于 30 的人

如果我们将示例中的一列添加到列表中并开始手动排列这些渐变,那么 Power Query 很快就会接受我们的想法并添加带有公式的列,其中运算符相互嵌套 if 逻辑将被实现,与我们需要的非常相似:

示例列 - Power Query 中的人工智能

同样,您不能将情况按到最后,而是单击 OK 然后修正公式中已经存在的阈值——这样更快:

示例列 - Power Query 中的人工智能

结论

当然是工具 示例中的列 不是“灵丹妙药”,迟早会出现非标准情况或数据中特别被忽视的“集体农场”情况,届时 Power Query 将失败并且无法计算出我们想要的结果对我们来说正确。 不过作为辅助工具,还是很不错的。 另外,通过学习他生成的公式,您可以扩展您对M语言功能的了解,这在将来总是会派上用场。

  • 在 Power Query 中使用正则表达式 (RegExp) 解析文本
  • Power Query 中的模糊文本搜索
  • Microsoft Excel 中的快速填充

发表评论