零基础函数定义域(小课堂M函数基础入门)
今日目标:
M函数入门6个基础知识
M函数基础入门,弄明白这3点很重要大家都知道,每周六 20:00,我都会在B站做免费Excel公开课直播。
直播的什么内容,每次我都会用投票的形式,大家来定。
上周的直播,有3个选题。
《从零制作工作日程表》以绝对优势胜出(文末有回放)。
但是《讲讲Power Query》这个话题的投票数也非常高。
大家对Power Query的呼声也特别的高,哭爹喊娘的、歇斯底里的说要学PQ!
作为一身正气的Excel老师,我当然是选择满足大家的!
于是周日临时加场,做了2个小时的《Power Query专题直播》
讲的非常爽,同学们也非常的给力,直播数据创历史新高!
什么?你没看到?太可惜了!
没关系
今天拉登老师最宠学员了,其实Power Query里最强大的还是M函数了,它算是Excel函数的加强版。
今天总结了M函数入门必知的6个基础知识,快赶紧收藏学习吧!
1-什么是M函数M函数是微软为MicroSoft Power Query设计的公式语言,简称M函数。
所以顾名思义,M函数只能用在Power Query中。
M函数和Excel中的函数相比,有下面几个优势:
1- 数据处理能力更强
Excel的函数公式处理上万行数据的时候,就会出现明显的卡顿。
M函数是基于Power Query的,Excel中的数据需要先加载到Power Query中,数据处理能力倍增,处理几十万行的数据毫无压力。
2- 数据计算方式更丰富
普通的Excel函数,处理数据通常只有数据计算、文本处理、数据查询这几种方式。
而M函数基于List、Table等对象,可以实现分组统计、透视列、逆透视、合并查询、拆分表格、表格结构重组等更多复杂的表格操作。
2- 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 ([部门] = "工程部"))
而且计算的结果和原始数据保持联动,数据发生变动,统计结果只需要右键,就可以一键刷新。
3- M函数编写位置
接下来,我们从函数编写第一步开始,再来看看Excel函数和M函数,更细节的对比。
Excel函数
Excel在任意单元格都可以写函数,只要用等号开头就可以。
可以在单元格里写=A2,引用A2单元格的值
可以在公式栏里写=SUM(B3:D4)函数,对数据求和
M函数
M函数在Power Query中编写,同也有两种方法
可以在公式栏里写M函数
步骤如下:
1- 先点击fx,创建一个新的步骤然后开
2- 在公式栏中开始写公式
也可以在「高级编辑器」中,用代码的形式来写M函数。
步骤如下:
1- 在「主页」菜单中,点击「高级编辑器」
2- 给这个步骤起一个名字sumresult
3- 其名字后面编写M函数公式
4- 函数名称函数公式根据用途,可以分为统计函数、文本函数、查询函数等类型。
Excel函数
Excel中可以在「公式」栏中,根据分类选择使用对应的函数。
如果是直接手写函数,没有相关的分类提示。
M函数
M函数的分类管理,使用了编程中的“包”管理策略。
根据不同的数据类型,设定了不同的“包”,使用函数的时候,需要先写“包”名称。
比如,前面统计3月销量的公式,步骤如下:
1- 先写List包名称。
2- 然后写List.Sum函数,对表格“源“中的「3月」这一列求和。
所有的M函数,都要先写包名称。
5- 参数类型参数就是函数公式计算需要的原材料。
M函数学习的一个大门槛,就是对于参数类型(或者说数据类型)的理解。
Excel函数
函数参数类型,都是具体的数值,这个数值有两种参数形式:
1- 数值,直接写在函数中
2- 引用,通过单元格引用,写入函数中
M函数
除了常规的数值类型,M函数中增加了3个数据类型:Record、List、Table,引入了编程中的“对象”的概念,增加了学习难度。
1- Record
多个不同类型的数据的合集。比如一个人的姓名、数量等信息,可以以人为单位,这个人的类型就是Record。
在Power Query中,单元格里显示的是数据类型「Record」,鼠标选择单元格后,下方的预览面板中,可以查看Record的明细。
2- List
一组数据清单,类似Excel中的数组。这个数组中的数据,可以是数值,也可以是一组Record,也可以是一组List,一组Table。
这个list中既包含了基础的数据,也包含了Record记录和另一个list数据。
3- Table
表格类型数据。没错的,M函数中可以把一整个表格,都当成参数,而且是常规操作。
因为M函数计算的最终目的就是返回一个表格。
在预览区域中,可以看到表格的字段名称、数据内容。
6- 返回结果返回结果,是指函数公式计算之后返回到单元格里的数据。
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函数呢?投票告诉我吧?
1. 赶紧学M函数,否则就out了
2. Excel函数够用了,不着急
我是拉小登,一个会设计表格的Excel老师
,
免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com