均值定理最大值最小值公式_M语言之编写M公式的两大“法宝”

“乾坤挪移”大法除了【添加列】选项卡下的功能以外,【自定义列】还可以实现很多命令按钮无法直接实现的功能。但是初学者经常会遇到这样的困惑:面对海量M函数,不知道什么情况下“找谁帮忙”。不要紧,有专门解决此困惑的“乾坤挪移”大法,分两步走:先获取公式,从选项卡下找到相关的命令进行操作,再移为己用,将由此操作步骤自动生成的M公式“挪移”到【自定义列】中。比如需要新生成一列,这一列里每一个数都是“数量”列的总计。可是计算总计该用哪个M函数,其中的参数又该如何使用,这些都是未知的,这时,此“乾坤挪移”大法就可以“发威”了。获取公式:如图 4-9 所示,选取“数量”列,单击【转换】选项卡下的【统计信息】下拉按钮,在下拉选项中选择【求和】,然后复制在【编辑栏】里自动生成的M公式(复制的内容不包括最前面的等号)。 0adc0be1d2a48ac4d0e7190b87e838b3.png要点提示:求和,统计最小值、最大值、平均值等转换成一个值:【Power Query编辑器】→选取数值对象→【转换】→【统计信息】→【求和】或【最小值】或【最大值】或【平均值】计算被选取多列中每行的值:【Power Query编辑器】→选取多列数值对象→【添加列】→【统计信息】→【求和】或【最小值】或【最大值】或【平均值】移为己用:删除“计算的总和”这一步骤,单击【添加列】选项卡下的【自定义列】按钮,将刚才复制的M公式粘贴到【自定义列】对话框中自定义列公式的等号后,输入新列名“数量总计”后单击【确定】按钮,求和的新列就生成了,如图 4-10 所示。 decd489a5abfa1951b7a4f4c4ffb785e.png再回过头来看这个用于求和的M函数“List.Sum”的参数。“[数量]”很好理解,就是对“数量”列数据的引用,用这个M函数的目的就是对“数量”列进行求和。只是在“[数量]”前面还多了一个“已添加自定义”,这又是什么呢?原来,在使用某些M函数时,不仅需要确定引用的列,还要确定引用的查询表,而“已添加自定义”则是整个查询操作中的一个步骤,意思是,这个M函数引用的是“已添加自定义”这一步骤所生成的查询表里的“数量”列。如果在【应用的步骤】里将“已添加自定义”这一步骤删除,会产生什么样的影响呢?本着“折腾出真知”的原则,可以尝试一下。“已添加自定义”是一个中间步骤,删除时“异空间”会弹出一个对话框来询问是否确定要删除。有些中间步骤的删除确实会影响后续步骤,不过这里不用担心,单击【删除】按钮即可。将这一步骤删除以后再来看这个M公式,会发现唯一的变化就是其中的参数自动变成了前一个步骤的“添加打折列”,公式运行的结果没有受到半点影响,如图 4-11 所示。 002381503c004c1bd7e0c2467c33ee8c.png最后,将“已添加自定义 1”这个步骤的名称修改成更具描述性的“添加数量总计列”,才更符合规范。“依葫芦画瓢”法“List.Sum”是一个比较简单的M函数,再来看一个稍微复杂一点的M函数“Table.TransformColumns”,它的功能是对指定列进行各种转换操作。【转换】选项卡下的很多操作所生成的M公式里都有它的身影。例如,要为“品名”列里的内容添加统一前缀“新品”,单击【转换】选项卡下的【格式】下拉按钮,在下拉选项中选择【添加前缀】,在弹出的对话框里输入“新品”,然后单击【确定】按钮。这时从【编辑栏】里就可以看到图 4-12 所示的M公式。 c0f8a7fe24b7603a47c7e63f047c3221.png d927eb33d1d7d66aa07916fb80205c67.png这个M公式里的第一个参数很好理解,就是“添加数量总计列”这一步骤所生成的查询表。第二个参数就比较有意思了,居然有两对大括号,这是在为同一参数里的子参数划定“势力范围”。M函数“Table.TransformColumns”只有两个参数,然而一个查询表里有那么多列,每列的转换又有那么多种类,光靠第二个参数实在说不清楚,所以就加了大括号,而且还是两层,大括号里的就是子参数。里层的大括号里是对每列进行转换的具体处理手段,有三个子参数:第一个子参数是外加一对半角引号的“品名”列列名,表示转换对象是“品名”列;第二个子参数就是具体的操作,这里是添加前缀,使用了连接符“&”,将前缀“新品”和这一列中的原始内容进行连接;第三个子参数是为转换后的列设置数据类型,“text”是文本类型。此M公式中包含了“each”和“_”的结构,“each”可以理解成“每一个”,而“_”是一种省略写法,在这里表示“品名”列里每一个具体的值。如此看来,里层大括号中的内容可以理解成,对“品名”这一列里的每一个值前面连接一个“新品”,生成的结果为文本类型。图 4-13 展示了M函数“Table.TransformColumns”的各参数。在理解了这个M函数各参数的含义以后,如果需要改变或增加其功能,只要在已有结构的基础上,按照语法规则“依葫芦画瓢”对其进行修改即可。比如,想要用一个M公式同时实现对品名添加前缀和将“单价”列里的数据全部加 20%两个功能,就可以如图 4-14 所示,将公式修改如下: a6bc3cf020338790f85d645a977637ad.png 684b0f4de6c6af43f58f5b10bc944c03.png fe60093511e7716a36537bd474287fc3.png修改后的公式又添加了一对里层的大括号,第一对大括号里的子参数是原有的,第二对大括号里的子参数是新输入的,其作用是对“单价”列里的每一个值乘以 1.2,生成的结果为小数类型。这两对大括号之间用半角逗号分隔。如果还有别的转换计算,可以按照这个规律继续增加大括号组,写入子参数。注意,参数与参数之间是否有空格无关紧要,加空格的目的无非是让整个公式的结构看起来更加清晰,但是同一参数内的一些固定用法,如“each”和“_”之间,或者“type”和“text”之间等,空格不可缺少。

3cac995b2e6f1fb21e2e0e966675bfd1.gif

  推荐阅读  

《Power Query数据清洗实战》

e38dc5d2ab6f7af37bbb821ccecb04a1.png

推荐理由

神奇:Power Query比VBA和函数更简洁且强大,可跨越数百种数据源,通过简单的拖拽就能实现曾经用代码、函数才能达到的神奇效果。 易学:本书通过“妖言妖语”把复杂繁琐的操作讲得清晰直白,让你循序渐进地掌握Power Query的高级用法,轻松应对各种数据处理的疑难杂症。

6a91417f868e058265a245fdfa63f04a.gif 点击左下“

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值