数据可视化之powerBI入门(八)PowerQuery学习:认识M函数
https://zhuanlan.zhihu.com/p/64148928
前面我们学习PQ的时候都是用鼠标操作,虽然通过这些操作能完成大部分的数据处理,但是毕竟还有些复杂的工作是处理不了的,如果想彻底驾驭PQ,必须得掌握点高级玩法。就像学习Excel一样,做个表格我们只要会简单的操作就可以了,但要想学好Excel,必须会点公式、VBA是一样的道理,PQ的高级技能也是需要写公式函数的,在PQ中用的函数称之为M函数。
在之前的PQ操作中,其实M函数无处不在,比如做数据清洗的每一个步骤,背后都有M函数的影子。打开高级编辑器,可以看到所有这些步骤的M语言。

如果我们不进行鼠标操作,直接在编辑器中编写这些语言,也是可以得到最终的结果的,有了M函数,PQ的数据处理具有很强的可读性和可移植性。
01 | 为什么要学习M函数
- 有些复杂的操作必须借助M函数
- M函数更加灵活,简洁高效
02 | M函数基本规范
- M函数对大小写敏感,每一个字母必须按函数规范书写,第一个字母都是大写
- 表被称为Table,每行的内容是一个Record,每列的内容是一个List
- 行标用大括号{ },比如取第一行的内容:=表{0} //PQ的第一行从0开始
- 列标用中括号[ ],比如取自定义列的内容:=表[自定义]
- 取第一行自定义列的内容:=表{0}[自定义]

03 | 常用的M函数
- 聚合函数:
求和:List.Sum()
求最小值:List.Min()
求最大值:List.Max()
求平均值:List.Average()
- 文本函数:
求文本长度:Text.Length()
去文本空格:Text.Trim()
取前n个字符:Text.Start(文本,n)
取后n个字符:Text.End(文本,n)
- 提取数据函数:
从Excel表中提取数据:Excel.Workbook()
从Csv/Txt中提取数据:Csv.Document()
- 条件函数:
if else then (相当于Excel中的IF)
04 | 从哪里查找M函数
新建一个空查询,在公式标记栏中输入=#shared,就把所有的M函数显示出来了,点击某个函数,最下方便出现该函数的注释:

05 | 学习建议
虽然M函数很强大,但是不建议一头扎进去学习她,毕竟对于一个之前没有接触过编程的人来说,学习成本还是挺高的,并且大部分函数并不常用。
我的建议是先能够读懂M语言,并把常用的函数,比如文本函数、字符串函数、日期函数等浏览一遍,知道大概都有什么函数,分别是哪些功能,然后在数据处理过程中碰到鼠标操作难以完成的问题,能想到有哪个M函数可以利用,直接查找和并根据注释使用、或者会修改相应的M函数即可。
如果熟练使用鼠标操作功能,又能灵活运用M函数,你将在数据处理的路上一骑绝尘、所向披靡。在大数据已经进入日常工作和生活的今天,拥有Power Query这个利器, 我们就能用最少的时间来处理数据,留下更多的时间去分析数据,去发现数据背后的规律,这才是我们学习PQ、学习PowerBI的最终目标。
数据可视化之powerBI入门(八)PowerQuery学习:认识M函数的更多相关文章
- 数据可视化之powerBI入门(四)Power BI与PowerQuery、PowerPivot有什么关系
https://zhuanlan.zhihu.com/p/64146209 Power BI与PowerQuery.PowerPivot有什么关系? 刚开始学习PowerBI的时候,总是能碰到Powe ...
- 数据可视化之powerBI入门 (一)认识PowerBI
来自 https://zhuanlan.zhihu.com/p/64144024 Power BI是什么? Power BI是微软推出的数据分析和可视化工具,我们先来看看微软官方是怎么介绍的: Po ...
- 数据可视化之powerBI入门(十二)PowerBI中最重要的函数:CALCULATE
https://zhuanlan.zhihu.com/p/64382849 介绍DAX的时候,特别强调过一个重要的函数:CALCULATE,本文就来揭秘这个函数的计算原理以及它是如何影响上下文的. C ...
- 数据可视化之powerBI入门(三)财务人员必学,使用Powerquery是一种什么体验?
https://zhuanlan.zhihu.com/p/54700574 财务人员必学,使用Powerquery是一种什么体验? 你和Excel高手的距离只差了一个Power Query!!! 先思 ...
- 数据可视化之powerBI入门(五)PowerQuery,支持从多种源导入数据
PowerBI的强大绝不仅是最后生成炫酷的可视化报告,她在第一步数据获取上就显示出了强大的威力,利用Power Query 的强大数据处理功能,几乎可以从任何来源.任何结构.任何形式上获取数据 htt ...
- 数据可视化之powerBI入门(六)PowerQuery:横向/纵向追加数据
https://zhuanlan.zhihu.com/p/64148432 上一篇文章都是在原表数据基础上的分分合合,但做数据分析的时候还经常需要在原有数据的基础上增加一些辅助数据,比如加入新列.新行 ...
- 数据可视化之powerBI入门(十)认识Power BI的核心概念:度量值
https://zhuanlan.zhihu.com/p/64150720 本文学习PowerBI最重要的概念:度量值 初学Power BI一般都会对度量值比较困惑,毕竟对长期接触Excel的人来说, ...
- 数据可视化之powerBI入门(九)PowerBI数据建模:其实一点都不高深
https://zhuanlan.zhihu.com/p/64149834 数据建模并没有那么高深,你同样可以学会!这篇文章通过一个实例创建一个简单的数据建模,并引出两个重要的概念:度量值和DAX. ...
- 数据可视化之powerBI入门(二)体验PowerBI:零基础分分钟生成一份交互报表
https://zhuanlan.zhihu.com/p/64144595 体验PowerBI:零基础分分钟生成一份交互报表 首先我们准备一份数据,Excel格式 数据是从2006年到2015年10年 ...
随机推荐
- WAMP3.1 安装php_redis.dll扩展并配置php.ini
一. 下载对应版本的php_redis.dll 下载地址:http://windows.php.net/downloads/pecl/releases/redis 注:php7目录下有php7.dll ...
- 《刻意练习之C#》-0016- C#预处理器指令
预处理指令 这些指令/命令不会转换为可执行代码,但会影响编译过程的各个方面:列如,可以让编译器不编译某一部分代码等. C#中主要的预处理指令 #define和#undef #define指令定义: # ...
- Flutter 中由 BuildContext 引发的血案
今天和各位分享一个博主在实际开发中遇到的问题,以及解决方法.废话不多说,我们先来看需求: 我们要做一个iOS风格的底部菜单弹出组件,具体涉及showCupertinoModalPopup()方法,该方 ...
- Chrome浏览器 Console调试台的简单使用
打开调试台 方法1:在chrome浏览器中打开网页,按下F12,点击下图框选内容. 方法2: 浏览器中鼠标右键选择查看网页源代码后,再按上图操作. 调试台的功能 (因为是第一次使用这个调试台,只能罗 ...
- c++ 对vector和deque进行逆序排序问题
1.vector vector<int> data1; 2.deque deque <int> data2; 逆序排序方式: 方式1.使用reverse函数 (内置数据类型 ...
- Spring Boot 整合 Apollo
简介 Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性,适用于微服务配置管理场景 ...
- Spring声明周期的学习心得
我们首先来看下面的一个案例: 这里是 HelloWorld.java 文件的内容: package com.yiibai; public class HelloWorld { private ...
- MapReduce 论文阅读笔记
Abstract MapReduce : programming model 编程模型 an associated implementation for processing and generati ...
- eclipse导入git项目
复制项目的git路径 Eclipse打开 Git Repostitories 视图 弹出show view窗口 选择ok ,进入git repositories 视图窗口 我这里已经导入从我的git仓 ...
- SpringBoot之入门教程-SpringBoot项目搭建
SpringBoot大大的简化了Spring的配置,把Spring从配置炼狱中解救出来了,以前天天配置Spring和Mybatis,Springmvc,Hibernate等整合在一起,感觉用起来还是挺 ...