在这篇文章中,我们将学习如何在电源查询中构建自定义查询函数,这些功能将复制Excel的电源查询修剪功能!
如果您发现您始终执行相同的转换或计算,为什么不将其转换为功能?这可以简化查询中的步骤,并允许您重新使用解决方案。
目录
问题
一段时间,我写了一篇文章删除不需要的空间字符的4种方法从文本数据。
我看着的两个解决方案是修剪在Excel中的功能和使用电源查询。
Excel修剪功能易于使用,做得很好。它将从文本字符串的开始和结尾中删除所有空格字符,以及删除单词之间的多余空间。因此,当一个单词之间存在多个空间时,它将用一个空格替换它们。
还有一个text.trim.在电源查询中的函数,但它只从文本字符串的开始和结尾删除空格。没有删除单词之间的空格。
我在帖子中的解决方案是申请修剪命令然后使用替换值命令用单个空格替换双个空间的实例。然后重复该过程,直到没有更多的双个空间。
诚实不是一个很好的解决方案。
这意味着重复步骤,其需要多一点的更多的努力。但更重要的是,如果新的数据进来,则数替换值步骤可能不够了。
因此,我们将创建一个功率查询功能来复制Excel的优越函数修剪功能。
视频教程
M指令码的查询功能
让Exceltrim =(texttotrim)=>
让
替换文件= text.replace(texttotrim,“,”,“),
结果=如果不是(text.Contains(替换文本,“)))
然后更换替换
否则@exceltrim(替换文件)
在
text.trim(结果)
在
Exceltrim.
此函数占据一串文本,并用单个空格替换双个空格并重复该过程递归直到它找不到任何双个空间。然后它适用text.trim.功能采取的任何前导或尾随空格字符护理。
创建递归函数解决了手动应用重复的问题替换值删除双色空间的步骤,是一个更优雅和可用的解决方案。
创建一个空白查询
创建查询函数的第一步是创建一个新的空白查询。这是我们将放置的地方M代码对于我们的功能。
前往数据标签➜然后去获取数据➜选择来自其他来源➜然后选择空白查询。
这将打开电源查询编辑器。
我们可以使用该查询名称姓名盒子里的盒子特性部分。这是将用于引用查询功能的原因,因此我们应该给它一个很好的描述性名称。
将M代码添加到高级编辑器
现在我们需要添加M代码到查询,我们可以在高级编辑器中执行此操作。
打开高级编辑器转到家选项卡,然后按高级编辑器按钮。
将代码复制并粘贴到编辑器中,然后按完毕按钮。
然后我们可以关闭和装载查询以保存查询函数。
使用查询函数
关闭并加载查询功能后,我们将看到列出的查询查询和连接窗玻璃。该图标将会更小FX.符号表示这是一个函数。
现在,我们如何使用这个功能呢?我们可以通过创建一个自定义列使用它的任何查询。
前往添加列标签并选择自定义列。
我们可以为我们的新列提供一个名称和公式编辑器,我们可以添加我们的公式。
fexceltrim([文本修剪])
这将适用于Fexceltrim.查询函数到每行的[文本修剪]柱子。
结论
在Power查询中构建查询功能是简化和重用查询的重要方法。
我们还可以构建刚刚使用电源查询编辑器UI无法使用的解决方案。
使用UI,无法递归地添加转换步骤,但在M代码和功能中,这相当容易。
非常丰富的!!
我只需要问,我不明白你在最后使用text.trim(结果)。
如果是的话是什么。
你能解释一下!!
谢谢
该代码替换单个空格的双空格字符,所以有可能是在字符串的开始或结束一个空格字符。
Text.Trim(结果)是需要从开始或结束删除这些。
谢谢您的答复!!
我只需要要求,
请解释嵌套的假帐,即详细说明其中一个博客中的假帐语句。
它将帮助我们编写自己的自定义功能,这是如此强大..
这是天才。伟大的作品......非常感谢分享!