Power Query M 公式——常用表达式解释及实际应用(截取、替换、合并.......)

从官网的文档中我们可以看到N+1的表达式概述及功能 ,但是平时我们开发过程中,可能用到的只是其中的一小部分,所以今天给大家分享一些在power query里面常用的一些M表达式。

我先把官网的文档链接贴出来,需要看详细的小伙伴可以去看详解 .(PS:官网文档可以下载成PDF哦) 

        https://docs.microsoft.com/zh-cn/powerquery-m/power-query-m-function-reference

这里我给大家普及一下所有microsoft官网的文档都分为:英、中。小伙伴可以直接指定网页显示的语言,注意看我下方链接标粗的地方,例:   https://docs.microsoft.com/en-us/powerquery-m/power-query-m-function-reference


今天主要是分享一些平时开发中所用到的M表达式

以下数据都为测试数据

1.截取

例:取name列前四位值

截取=Text.Middle([NAME],0,4)

注意:M函数所以取字符串下标位置都是从0......N。

结果如下:

官方解释:https://docs.microsoft.com/zh-cn/powerquery-m/text-middle 

2.替换

例:将MARK字段特殊字符去掉并且去掉空格

这里一共用了两个函数:空格:Text.Trim替换:Text.Replace

替换=Text.Replace(Text.Replace(Text.Replace(Text.Trim([MARK]),"&",""),"%","")," ","")

结果如下:

 

官网解释:https://docs.microsoft.com/zh-cn/powerquery-m/text-trim /  https://docs.microsoft.com/zh-cn/powerquery-m/text-replace

3.合并

例:NAME列与替换列合并

合并有很多种方法,这边也是仅两种简单的:  " & "  ,"Text.Combine”

方法一:

合并一 =  [NAME] & [替换]

结果如下 :

方法二: 

合并二=Text.Combine({[NAME],[替换]})

结果如下: 

官方解释:https://docs.microsoft.com/zh-cn/powerquery-m/text-combine 

4.判断字符长度

例:判断ID列位数是否满足5位

判断长度=Text.Length([ID])

判断长度不足补0=Text.PadStart([ID],5,"0")

 

结果如下:

官网解释:https://docs.microsoft.com/zh-cn/powerquery-m/text-padstart

 

这里先简短的写一些比较简单常用的,Power Query M函数会持续更新中。。。。。

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
PowerQuery是微软推出的一整套Power工具-系列的一个组成成员。这里有必要再次强调一下整个系列,包括: PowerQuery – 定位:查询。记住它的中文翻译即可:超级查询。凡是要查询数据(各个地方各种格式),只要此工具即可。 PowerPivot – 定位:透视。对PowerPivot有所了解的人,可能不一定赞同这个描述,那是因为您到了见山不是山的阶段。记住它的中文翻译即可:超级透视。透视,是一个比较复杂的概念,需要单开文章详细说明。通俗地说,要了解一件复杂事情的本质,需要拨开迷雾,从多个角度来看它,所谓穿越迷雾,多维度观察。PowerPivot及相关技术相对复杂,见相关文章深入。 PowerBIDestop – 定位:洞察。PowerBIDestop/PowerBI 是为了能通过快速的图形拖拽,从图表的可视角度,观察出事物的规律,进而才知道要定制什么样的报表来监测什么样的变化。(如果你用过PowerView,这里并不做介绍,是因为PowerView的一切功能已经内含在PowerBIDestop中了,换句话说PowerView被微软淘汰了,当然还能用。) PowerMap – 定位:地图。如果你以为地图就是中国各地区”热力图”(销售额区域分布),那你就太小看这件事了。凡是以二维空间作为基础面的,都可以用地图来做展示,比如:一个公司员工的场地工位,标注一个员工的绩效、成本、性格等,一个几千人的企业,形成一个3D版的员工价值地图,你想象出了吗。 PowerPoint – 定位:演说。你可能会觉得这个工具不用做介绍,太普遍了。的确如此。关于如何用好PowerPiont有大量牛人和牛逼教程。我还是要告诉你95%的教程包括牛人的教程都讲了用PowerPiont制作作品的方法和绝妙技巧,而关于这背后的本质(懂了本质,就能灵活应变,技巧是短暂的,本质是真理的,是不变的),甚少有介绍。举个例子:如何以基本不变的套路对一个给定时间给定主题的演说用最小的时间制作出从可用级到极致级的PPT。
### 回答1: 在Power Query中,Each表达式的下划线在List.Transform函数和List.Generate函数中的意义不同。 在List.Transform函数中,下划线表示当前元素,该函数将列表中的每个元素一个一个地进行转换。 在List.Generate函数中,下划线表示当前循环次数,该函数将从初始值不断地循环生成新的元素,直到满足某个条件为止。 ### 回答2: 在Power Query中,each表达式中的下划线在List.Transform函数和List.Generate函数中分别表示不同的含义。 在List.Transform函数中,下划线代表当前元素。List.Transform函数可用于对列表中的每个元素应用相同的转换操作。在每个转换操作中,通过使用下划线来引用当前正在处理的元素。例如,如果我们有一个列表[1, 2, 3],并希望将每个元素都乘以2,我们可以使用List.Transform函数和each表达式来进行操作,如下所示: List.Transform([1, 2, 3], each _ * 2) 运行结果为[2, 4, 6]。 而在List.Generate函数中,下划线则表示一个累加器。List.Generate函数用于生成一系列值,并在每次生成值时更新累加器。在每次生成值时,都可以使用下划线来引用当前的累加器值。例如,我们可以使用List.Generate函数生成一个从0到10的整数列表,如下所示: List.Generate(() => 0, each _ < 11, each _ + 1) 运行结果为[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]。 因此,在List.Transform函数中,下划线表示当前元素,而在List.Generate函数中,下划线表示一个累加器。根据具体情况,我们可以使用each表达式应用相应的转换或生成操作。 ### 回答3: 在Power Query中,each表达式的下划线在List.Transform函数和List.Generate函数中分别表示不同的含义。 在List.Transform函数中,each表达式的下划线表示一个占位符,用以表示列表中的每个元素。通过使用each表达式,我们可以对列表中的每个元素进行处理或转换。在Transform函数中,我们可以使用下划线来引用当前正在处理的元素,通过对其进行操作来生成新的列表。 举个例子,假设我们有一个包含数字的列表[1,2,3,4,5]。我们可以使用List.Transform函数来将列表中的每个元素乘以2,并生成一个新的列表。表达式可以写成List.Transform([1,2,3,4,5], each _*2),这里的下划线表示当前正在处理的元素。最终的结果将是[2,4,6,8,10]。 在List.Generate函数中,each表达式的下划线表示用以生成列表的每个元素。List.Generate函数会根据一些指定的条件和生成规则来生成一个新的列表。我们可以使用下划线来引用每一次生成的元素,并指定生成条件。 例如,假设我们想生成一个包含斐波那契数列的列表,我们可以使用List.Generate函数来完成。可以将表达式写成List.Generate(()=>[0,1], each List.Last(_)<=100, each List.Combine({_,[0]+_[1],_[0]+_[1]}))。在这个例子中,下划线用来引用生成的列表元素。通过不断计算前两个元素的和来生成新的元素,直到列表中最后一个元素大于100为止。最终生成的斐波那契数列列表为[0,1,1,2,3,5,8,13,21,34,55,89]。 总之,在Power Query的List.Transform函数和List.Generate函数中,each表达式的下划线分别表示列表中的每个元素和生成列表的每个元素。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值