终究没有人在意一家民营企业的生死

去泰国看了一场“成人秀”,画面尴尬到让人窒息.....

【少儿禁】马建《亮出你的舌苔或空空荡荡》

网友建议:远离举报者李X夫!

10部适合女性看的唯美情色电影

生成图片,分享到微信朋友圈

自由微信安卓APP发布,立即下载! | 提交文章网址
查看原文

用了这么多年Excel,还不知道M函数是啥?一文弄懂,不学后悔!

拉登Dony 秋叶Excel 2022-06-10

点击上方蓝字关注星标不迷路


本文作者:拉登 Dony

来源:拉小登(ID:ladengchupin)

本文编辑:小叮、竺兰



许多同学哭爹喊娘、歇斯底里地说要学 PQ!

Power Query 里最强大的还是 M 函数了,它算是 Excel 函数的加强版。

今天总结了 M 函数入门必知的 6 个基础知识,赶紧收藏学习吧!
什么是 M 函数?


M 函数是微软为 MicroSoft Power Query 设计的公式语言,简称 M 函数。

所以顾名思义,M 函数只能用在 Power Query 中。

M 函数和 Excel 中的函数相比,有下面几个优势:

❶ 数据处理能力更强。


Excel 的函数公式处理上万行数据的时候,就会出现明显的卡顿。

M 函数是基于 Power Query 的,Excel 中的数据需要先加载到 Power Query 中,数据处理能力倍增,处理几十万行的数据毫无压力。

❷ 数据计算方式更丰富。


普通的 Excel 函数,处理数据通常只有数据计算、文本处理、数据查询这几种方式。

而 M 函数基于 List、Table 等对象,可以实现分组统计、透视列、逆透视、合并查询、拆分表格、表格结构重组等更多复杂的表格操作。
M 函数能干啥?


举一个很简单的例子。

我们经常需要根据某个条件,查询所有符合的记录。


在 Excel 中要编写这么复杂的公式。

=IFERROR(INDEX(A$3:A$18,SMALL(IF($A$3:$A$18=$G$2,ROW($A$1:$A$16),4^8),ROW(A1))),"")
▲ 左右滑动查看

而在 M 函数中,只需要一个 SelectRows 一个函数,就可以轻松实现。


= Table.SelectRows(源, each ([部门] = "工程部"))
▲ 左右滑动查看

而且计算的结果和原始数据保持联动,数据发生变动,统计结果只需要右键,就可以一键刷新。

M函数编写位置



接下来,我们从函数编写第一步开始,再来看看 Excel 函数和 M 函数,更细节的对比。

Excel 函数

Excel 在任意单元格都可以写函数,只要用等号开头就可以。


❶ 可以在单元格里写=A2,引用 A2 单元格的值;

❷ 可以在公式栏里写=SUM(B3:D4)函数,对数据求和。

M 函数

M 函数在 Power Query 中编写,同样也有两种方法:

可以在公式栏里写 M 函数:


步骤如下:

❶ 先点击 fx,创建一个新的步骤然后开始;
❷ 在公式栏中开始写公式。

也可以在「高级编辑器」中,用代码的形式来写 M 函数:


步骤如下:

❶ 在「主页」菜单中,点击「高级编辑器」;
❷ 给这个步骤起一个名字 Sumresult;
❸ 其名字后面编写 M 函数公式。

函数名称



函数公式根据用途,可以分为统计函数、文本函数、查询函数等类型。

Excel 函数

Excel 中可以在「公式」栏中,根据分类选择使用对应的函数。


如果是直接手写函数,没有相关的分类提示。

▋M 函数

M 函数的分类管理,使用了编程中的「包」管理策略。

根据不同的数据类型,设定了不同的「包」,使用函数的时候,需要先写「包」名称。


比如,前面统计 3 月销量的公式,步骤如下:

❶ 先写 List 包名称;
❷ 然后写 List.Sum 函数,对表格「源」中的「3 月」这一列求和。

所有的 M 函数,都要先写包名称。
参数类型


参数就是函数公式计算需要的原材料。

M 函数学习的一个大门槛,就是对于参数类型(或者说数据类型)的理解。

Excel 函数

函数参数类型,都是具体的数值,这个数值有两种参数形式:

❶ 数值,直接写在函数中;
❷ 引用,通过单元格引用,写入函数中。


M 函数

除了常规的数值类型,M 函数中增加了 3 个数据类型:Record、List、Table。

引入了编程中的「对象」的概念,增加了学习难度。

❶ Record。


多个不同类型的数据的合集。

比如一个人的姓名、数量等信息,可以以人为单位,这个人的类型就是 Record。


在 Power Query 中,单元格里显示的是数据类型「Record」。

鼠标选择单元格后,下方的预览面板中,可以查看 Record 的明细。

❷ List。


一组数据清单,类似 Excel 中的数组。

这个数组中的数据,可以是数值,也可以是一组 Record,也可以是一组 List,一组 Table。


这个 List 中既包含了基础的数据,也包含了 Record 记录和另一个 List 数据。

❸ Table。


表格类型数据。

没错的,M 函数中可以把一整个表格,都当成参数,而且是常规操作。

因为 M 函数计算的最终目的就是返回一个表格。


在预览区域中,可以看到表格的字段名称、数据内容。
返回结果


返回结果,是指函数公式计算之后返回到单元格里的数据。

Excel 函数

仔细回顾一下 Excel 中的函数公式。

无论是 SUM 函数,VLOOKUP 函数,返回的数据类型都非常单一,全部都是 1 个单独的数值。

然后我们再通过「填充公式」的方式,计算出所有符合要求的数据。


无论公式长短,返回结果都是一个数值。

M 函数

M 函数中的参数多了 Record、List、Table 三种类型,那么对应的,M 函数也可以把这三种数据类型,作为计算结果返回到 Power Query 中。

 返回Record数据:


这段公式将返回一个 Record 数据:
= [姓名="拉登Dony",数量=123]


 返回 List 数据:


这段公式将返回一个 List 数据:
= {1,2,3,4}


 返回 Table 数据:


这段公式将返回一个 Table 数据:
= #table({"姓名","数量"},{{"dony",123},{"king",456}})
▲ 左右滑动查看



大部分情况下,我期望返回的结果都是一个 Table 类型,因为需要转成表格上载到 Excel 中。

而 List 和 Record 通常是数据计算过程中处理的数据,特别是 List 类型数据,包含了大量核心的 M 函数,也是后续深入学习的重点。
总结


如果根据诞生的年份来看,Excel 函数已经是一个中老年人。

大家都非常的熟悉了,合作起来也更顺畅,但技术陈旧,处理复杂需求的时候,会略显疲惫。

M 函数则是小伙正当年,技术高、能力强,手上一大把的神器函数,但是人生地不熟,语言有障碍,前期沟通成本略高。

看完今天的文章,你觉得自己该不该学习 M 函数呢?留言告诉我吧?

我是拉小登,一个会设计表格的 Excel 老师。

觉得 M 函数比较难,没看懂?你可能需要从 Excel 基础学起!

我们秋叶团队专门开发了《和秋叶一起学 Excel》课程,目的就是带你全面快速提升 Excel 技能,打下扎实的 Excel 基本功!


课程不限时间次数,手机电脑,随时随地都能学;还有专属学员群、在线答疑服务!

 今天小 E 特地为你们申请了 30 元优惠,到手价仅需 139 元~

优惠券仅限今天前 50 名同学领取,先到先得!

↑↑↑现在扫码,还可免费试看!







还想学习更多 PQ 知识

点这里告诉我们 !


文章有问题?点此查看未经处理的缓存