M语言全称为Power Query Formula Language,是一种查询语言,适用于Excel中的Power Query,Get & Transform(Excel 2016新功能)以及Power BI桌面版中。

M语言与DAX语言在使用上有两点明显的区别:

第一,M语言是一种脚本语言,与DAX这种表达式类语言在书写方面有着明显的区别。M语言更类似常用的JavaScript, PHP等,对于经常使用各种编程语言的开发者来说很容易读懂和上手。

而DAX语言前面介绍过,是一种在SQL Server Analysis Services Tabular, Power BI以及Excel的Power Pivot中都会使用到的数据分析语言,属于表达式类语言,与Excel中的计算公式十分类似,经常使用Excel的人基本可以无障碍上手。相对于M语言,DAX语言更简单,更容易让无编程技术的人上手。

第二,在Power BI中,M语言主要是用在Query Editor处,属于查询阶段使用的语言,作用是在将数据导入Power BI之前对数据进行组合,转换,筛选等工作。也就是说M语言可以实现将原始数据的Table A,导入后变成另外一个Table B,可以将Table C和TableD合并成一个TableE,或者将TableF拆分成TableG和TableH等。
而DAX是在Power BI中创建列或者度量值时使用的语言,目的是对已经导入到Power BI中的数据进行提取,加工,筛选,整理等。DAX实际上是对数据在M语言处理过的基础上进行近一步加工。可以理解为在Power BI中对数据进行分析,第一步使用的是M语言,之后再使用的是DAX语言。

M语言虽然和DAX语言在使用方法和位置上有显著区别,但是其可实现的功能却有很多相似性,例如前面介绍过得对数据进行拆分,实际上在查询编辑器中用的拆分列工具,其背后就是调用的M语言Splitter.SplitTextByDelimiter函数来实现在查询的过程中按照间隔符对数据进行拆分。

至于何时使用M语言何时使用DAX语言分析数据?这主要取决于实际的应用场景,跟出门是打算自己开车还是坐地铁是一个道理,在很多情况下两者都可以实现同一个目标,只不过代价可能稍有不同。例如在DAX语言中要实现多数组的嵌套循环会比较麻烦,此时用M语言去实现可能就更为直观。而DAX函数提供了很多预定义的方法,类似时间等的计算公式实现起来就比M语言简单。

另外,在选择用何种语言加工数据时还要本着一个原则,即是要在数据查询阶段就开始整理过滤还是需要在数据导入后再进行分析。M语言适用于查询阶段,相当于做了一个特定的模具,将符合条件的数据导入到Power BI当中,之后这些数据才会被用来生成各种报表。通过M语言过滤掉无用数据或将特定数据合并整理,可以减轻后续Power BI在分析数据上对CPU和RAM的压力,提高效率。而DAX语言是对导入后的数据进行分析,通过DAX函数计算得到的结果可以被直接用来生成Report,并且通过添加过滤条件,DAX语言可以便捷的获取某个特定区间内的结果。它更加适用于数据分析的汇总,加成,区间计算,特定条件求值等需求。

如果想要熟练使用Power BI分析数据,DAX语言和M语言都需要去掌握。两种语言并没有好坏高低之分,更多的是从不同的场景出发使用不同的语言以便能更快捷的获取分析结果。

M 语言学习官方文档:https://docs.microsoft.com/en-us/powerquery-m/power-query-m-reference

原文转载自:https://blog.csdn.net/jessica_seiya/article/details/79423368

【Power BI--- M 语言】M语言与DAX 语言的区别相关推荐

  1. Power BI 中 函数 PERCENTILE.EXC 和 PERCENTILX.EXC 用法区别

    一, PERCENTILEX.EXC: 用法: PERCENTILEX.EXC, 不含0和1. 返回在表达式中第 K 个百分比对应的数字 如图 , 二, PERCENTILE.EXC : 不含0和1. ...

  2. 【每周一本书】之《从Excel到Power BI:商业智能数据分析》:让你摆脱数据搬运工,成为数据分析师

    [数据猿导读] 本书详细介绍了Power BI的核心功能,掌握DAX语言与M语言的精髓,让你用20%的时间做80%的工作,摆脱数据搬运工,成为数据分析师 编辑 | abby 官网 | www.data ...

  3. DAX基础3:简单介绍Power BI中的New Quick Measures

    写基础比写分享麻烦很多.因为不知道要写到什么程度,写多了,信息量太大,接受困难,让人没有继续学下去的欲望.写少了,没啥干货,也不是我想要的.不忘初心,记住我是要干嘛的.哈哈哈,我是分享DAX的.其他的 ...

  4. dax powerbi 生成表函数_Power BI表连接的几个DAX函数,一次全掌握!

    原标题:Power BI表连接的几个DAX函数,一次全掌握! ​ 编写DAX代码进行业务分析时,经常会用到表与表之间的连接计算,比如在之前的产品关联分析一文中(如何用Power BI分析产品关联度?) ...

  5. [Power BI] 认识Power Query和M语言

    数据清洗,可理解为数据整理,对从各类数据源导入的数据,通过一定的方法(如数据的增删改.转换.逆透视.合并等)进行处理,整理成符合要求的数据,然后加载到数据模型中,进行数据可视化 在Power BI中, ...

  6. Power BI:M与DAX以及度量与计算列

    When I embarked on my Power BI journey I was almost immediately slapped with an onslaught of foreign ...

  7. power bi dax_M语言和Power BI中的DAX之间的差异

    power bi dax Microsoft Power BI supports two different languages, M language and DAX (Data Analysis ...

  8. 在Power BI中用DAX计算净现值NPV

    净现值(NPV - Net Present Value)是会计学当中经常使用到的一个指标.净现值指未来现金流的折现值与现在投资成本之间的差额.用白话来讲,净现值其实就只现在的钱,用来投资之后,在未来所 ...

  9. Power BI 之 DAX语法规范详解1

    文章预览: Power BI 之 DAX语法规范详解 1 前言 表构造函数{()} Lookupvalue函数 Related函数: Relatedtable函数 筛选引擎Calculate 单条件筛 ...

  10. Microsoft Power Platform 基础到实战(3)-Power BI (1)-数据分析表达式 DAX(1)

    目录 概述 计算 度量值 计算列 计算表 行级安全性 查询 公式 在公式中使用多个函数 函数概述 聚合函数 日期和时间函数 筛选器函数 财务函数 信息函数 逻辑函数 数学和三角函数 其他函数 关系函数 ...

最新文章

  1. ui设计师要养成哪些职场习惯呢?
  2. zabbix远程mysql_zabbix action 执行远程命令
  3. 哈夫曼树的构建、编码以及带权路径长计算
  4. 《高效程序员的45个习惯》-末篇
  5. 微信小程序几种常用弹窗提示
  6. java 一些容易忽视的小点-类和对象
  7. 用Flex绘制带Icon的Tooltip
  8. DataRow 点不出 Select
  9. flex局部的知识总结
  10. 艺赛旗(RPA)python 的 tkinter 进度条的实现
  11. Kali Linux介绍(安装教程)
  12. 神经网络与深度学习理论,tensorflow2.0教程,cnn
  13. 计算机图形学应用调研论文,计算机图形学的应用论文(2)
  14. 精炼口语短语446句
  15. 运用css设计简单3D魔方
  16. 人生在世,学点哲学很重要(二)
  17. 程序员欢乐送(第38期)
  18. 王佩丰excel教程笔记(查找 替换 定位)
  19. Mutli-Head Attention 和 Self-Attention 的区别与联系
  20. 我的第一张MCSE 2012证书

热门文章

  1. 如何批量将报表导成excel文件并打包下载
  2. Eclipse保护色设置
  3. HZRecorder+科大讯飞语音转换文字
  4. 知网中的硕博论文是caj格式,如何用CAJ转PDF?
  5. 调戏木马病毒的正确姿势——上
  6. 自制Qt周立功测试上位机
  7. Consul注册中心删除某个服务
  8. #includeiostream里的定义
  9. autocad+服务器未响应,CAD图纸打开未响应解决的方法
  10. 安装软件Mimics过程记录