复制Excel在Power查询中的修剪功能

2019-01-17

在这篇文章中,我们将学习如何在电源查询中构建自定义查询函数,这些功能将复制Excel的电源查询修剪功能!

如果您发现您始终执行相同的转换或计算,为什么不将其转换为功能?这可以简化查询中的步骤,并允许您重新使用解决方案。

问题

一段时间,我写了一篇文章删除不需要的空间字符的4种方法从文本数据。

我看着的两个解决方案是修剪在Excel中的功能和使用电源查询。

Excel修剪功能易于使用,做得很好。它将从文本字符串的开始和结尾中删除所有空格字符,以及删除单词之间的多余空间。因此,当一个单词之间存在多个空间时,它将用一个空格替换它们。

还有一个text.trim.在电源查询中的函数,但它只从文本字符串的开始和结尾删除空格。没有删除单词之间的空格。

我在帖子中的解决方案是申请修剪命令然后使用替换值命令用单个空格替换双个空间的实例。然后重复该过程,直到没有更多的双个空间。

诚实不是一个很好的解决方案。

这意味着重复一个需要更多努力的步骤。但更重要的是,如果有新的数据,那么替换值步骤可能不再足够了。

因此,我们将创建一个功率查询功能来复制Excel的优越函数修剪功能。

视频教程

M查询函数的代码

让Exceltrim =(texttotrim)=>替换文件= text.replace(texttotrim,“,”,“),结果=如果不是(text.Contains(替换文本,“)))然后更换替换否则@exceltrim(替换文件)text.trim(结果)Exceltrim.

此函数占据一串文本,并用单个空格替换双个空格并重复该过程递归直到它找不到任何双个空间。然后它适用text.trim.函数来处理任何前导或尾随空格字符。

创建递归函数解决了手动应用重复的问题替换值删除双色空间的步骤,是一个更优雅和可用的解决方案。

创建一个空白查询

创建查询函数的第一步是创建一个新的空白查询。这是我们将放置的地方M代码对于我们的功能。

去医院资料标签➜然后去获取数据➜选择来自其他来源➜然后选择空白查询

这将打开电源查询编辑器。

我们可以使用该查询名称姓名盒子里的盒子特性部分。这是将用于引用查询功能的原因,因此我们应该给它一个很好的描述性名称。

将M代码添加到高级编辑器

现在我们需要添加M代码到查询,我们可以在高级编辑器中执行此操作。

打开高级编辑器转到选项卡,然后按高级编辑器按钮。

将代码复制并粘贴到编辑器中,然后按完毕按钮。

然后我们可以关闭并加载查询以保存查询函数。

使用查询函数

关闭并加载查询功能后,我们将看到列出的查询查询和连接窗玻璃。图标将是一个小图标外汇符号表示这是一个函数。

现在,我们如何使用这个函数?我们可以通过创建自定义列在任何查询中使用它。

去医院添加列标签并选择自定义列

我们可以为我们的新列提供一个名称和公式编辑器,我们可以添加我们的公式。

fexceltrim([文本修剪])

这将适用于Fexceltrim.查询函数到每行的[文本修剪]柱子。

结论

在Power查询中构建查询功能是简化和重用查询的重要方法。

我们还可以构建刚刚使用电源查询编辑器UI无法使用的解决方案。

使用UI,无法递归地添加转换步骤,但在M代码和功能中,这相当容易。

关于作者

John Macdougall.

John Macdougall.

John是Microsoft MVP、自由职业顾问和培训师,擅长Excel、Power BI、Power Automation、Power Apps和SharePoint。你可以在John的博客或YouTube频道上找到其他有趣的文章。

订阅

广告

相关文章

评论

4评论

  1. 穆罕默德艾哈迈德

    非常丰富的!!
    我只需要问,我不明白你在最后使用text.trim(结果)。
    如果是的话是什么。
    你能解释一下!!

    谢谢

    • 约翰

      该代码将双空格字符替换为单空格,因此字符串的开头或结尾可能有单空格字符。

      需要修剪(结果)才能从起点或终点删除这些内容。

      • 穆罕默德艾哈迈德

        谢谢您的答复!!
        我只需要请求,
        请解释嵌套的假帐,即详细说明其中一个博客中的假帐语句。
        它将帮助我们编写自己的自定义功能,这是如此强大..

  2. 布伦特

    这是天才。伟大的作品......非常感谢分享!

获得最新消息

跟着我们

在社交媒体上关注我们,并与Excel的最新提示保持联系!

把它固定在pinterest上

分享这个