DAX是英文Data Analysis Expression的缩写,意思是数据分析表达式,从名称上就可以看出,DAX公式是用作数据分析的,事实上也确实如此,从数据分析层面认识DAX会更有助于我们理解它.


https://zhuanlan.zhihu.com/p/64272859

01 | 认识DAX

数据分析就是从茫茫数据中提取有用的信息,执行一定的运算,形成结论的过程,而DAX的主要功能正是查询和运算,DAX查询函数负责筛选出有用的数据集合,然后利用DAX的聚合函数执行计算。

从前面的文章我们知道,度量值的运算依赖上下文,上下文又分为外部上下文和内部上下文,外部上下文就是外部可以看得见的筛选:标签和切片器,而内部上下文就是创建度量值的DAX公式,它的查询筛选函数可以扩大、限制或者重置外部上下文。利用外部上下文和DAX的有效配合,度量值的灵活性大大增强,可以筛选出真正需要的数据集合并执行聚合运算。如果说度量值是Power BI数据建模的灵魂,那么DAX就是度量值的灵魂。

02 | DAX的使用范围

DAX可以在Power BI Desktop 的数据建模和Power Pivot中使用,除了可以创建度量值,还可以新建列,比如想把这个日期表上的月用两位数字表示,即7月用07表示,新建列然后编辑栏输入:

月份 = format('日期表'[日期],"MM")

然后就增加了一列[月份],

不过除非特别有必要,不建议用新建列的方式做数据丰富,这样更占用内存,如果想增加一列,可以在源数据上,回到查询编辑器里面增加一列然后上载到数据模型中使用。

03 | DAX参数的基本格式

  • 表名用单引号' '括着 // '日期表'
  • 字段用中括号[ ]括着 //[日期]
  • 度量值也是用中括号[ ]
  • 引用字段始终要包含表名,以和度量值区分开

04 | DAX常用函数

聚合函数

  • SUM
  • AVERAGE
  • MIN
  • MAX

这几个函数的使用和在Excel中完全一致,DAX中还有一类特有的函数非常有用,和这几个函数很像,后面加个X,

  • SUMX
  • AVERAGEX
  • MINX
  • MAXX
  • RANKX

这几个函数可以循环访问表的每一行,并执行计算,所以也被称为迭代函数。

其他常见的聚合函数:

  • COUNT:计数
  • COUNTROWS:计算行数
  • DISTINCTCOUNT:计算不重复值的个数

时间智能函数

  • PREVIOUSYEAR/Q/M/D:上一年/季/月/日
  • NEXTYEAR/Q/M/D:下一年/季/月/日
  • TOTALYTD/QTD/MTD:年/季/月初至今
  • SAMEPERIODLASTYEAR:上年同期
  • PARALLELPERIOD:上一期
  • DATESINPERIOD:指定期间的日期

关于时间智能函数,会专门写篇文章介绍,利用它可以灵活的筛选出一段我们需要的时间区间,做同比、环比、滚动预测、移动平均等数据分析时,都会用到这类函数。

筛选函数

  • FILTER:筛选
  • ALL:所有值,可以清除筛选
  • ALLEXCEPT:保留指定列
  • VALUES:返回不重复值

这几个函数,就是典型的DAX查询函数,通过筛选来操纵上下文的范围。

最后放出DAX最重要也是最常用的函数:CALCULATE,这个函数简直就是DAX本身,学好这个函数就基本上掌握了DAX,它值得专门写篇文章好好介绍。

数据可视化之powerBI入门(十一)认识Power BI数据分析语言DAX的更多相关文章

  1. 数据可视化之powerBI入门 (一)认识PowerBI

    来自  https://zhuanlan.zhihu.com/p/64144024 Power BI是什么? Power BI是微软推出的数据分析和可视化工具,我们先来看看微软官方是怎么介绍的: Po ...

  2. 数据可视化之powerBI入门(四)Power BI与PowerQuery、PowerPivot有什么关系

    https://zhuanlan.zhihu.com/p/64146209 Power BI与PowerQuery.PowerPivot有什么关系? 刚开始学习PowerBI的时候,总是能碰到Powe ...

  3. 数据可视化之powerBI入门(十)认识Power BI的核心概念:度量值

    https://zhuanlan.zhihu.com/p/64150720 本文学习PowerBI最重要的概念:度量值 初学Power BI一般都会对度量值比较困惑,毕竟对长期接触Excel的人来说, ...

  4. 数据可视化之powerBI入门(三)财务人员必学,使用Powerquery是一种什么体验?

    https://zhuanlan.zhihu.com/p/54700574 财务人员必学,使用Powerquery是一种什么体验? 你和Excel高手的距离只差了一个Power Query!!! 先思 ...

  5. 数据可视化之powerBI入门(二)体验PowerBI:零基础分分钟生成一份交互报表

    https://zhuanlan.zhihu.com/p/64144595 体验PowerBI:零基础分分钟生成一份交互报表 首先我们准备一份数据,Excel格式 数据是从2006年到2015年10年 ...

  6. 数据可视化之powerBI入门(九)PowerBI数据建模:其实一点都不高深

    https://zhuanlan.zhihu.com/p/64149834 数据建模并没有那么高深,你同样可以学会!这篇文章通过一个实例创建一个简单的数据建模,并引出两个重要的概念:度量值和DAX. ...

  7. 数据可视化之powerBI入门(七)数据清洗中最常使用的十三招

    https://mp.weixin.qq.com/s?__biz=MzA4MzQwMjY4MA==&mid=2484067158&idx=1&sn=4ad955112df2f4 ...

  8. 数据可视化之powerBI入门(六)PowerQuery:横向/纵向追加数据

    https://zhuanlan.zhihu.com/p/64148432 上一篇文章都是在原表数据基础上的分分合合,但做数据分析的时候还经常需要在原有数据的基础上增加一些辅助数据,比如加入新列.新行 ...

  9. 数据可视化之powerBI入门(五)PowerQuery,支持从多种源导入数据

    PowerBI的强大绝不仅是最后生成炫酷的可视化报告,她在第一步数据获取上就显示出了强大的威力,利用Power Query 的强大数据处理功能,几乎可以从任何来源.任何结构.任何形式上获取数据 htt ...

随机推荐

  1. [转] C++项目中的extern "C" {}

    点击阅读原文 引言 在用C++的项目源码中,经常会不可避免的会看到下面的代码: #ifdef __cplusplus extern "C" { #endif /*...*/ #if ...

  2. 3 年经验的 Java 后端妹子,横扫阿里、滴滴、美团,整理出这份厚厚的 8000 字面经!

    自序 这次面试的公司有一点点多,主要是因为毕业后前两份工作找的都很草率,这次换工作就想着,emm,毕业三年了,该找个工作好好沉淀几年了. 先说下这次面试的结果吧: 到 hr 面的:阿里.美团.滴滴.金 ...

  3. pikachu 搭建

    一:首先下载XAMPP 1.先到官方网站安装XAMPP  https://www.apachefriends.org/zh_cn/index.html 选择适合自己的电脑系统下载,本次windows系 ...

  4. vue 生成二维码+截图

    链接生成二维码 1.npm安装 npm install --save qrcodejs2 2.引入 import QRCode from 'qrcodejs2' 3.生成二维码 new QRCode( ...

  5. VScode Doxygen与Todo Tree插件的使用与安装

    VScode Doxygen与Todo Tree插件的使用与安装 引言 程序中代码注释的规范和统一性是作为工程人员必不可少的技能,本文在Visual Studio Code的环境下简单介绍Doxyge ...

  6. CF #640 (div4)

    CF640 div4 草 迟到半个月的补题 真正的懒狗 再懒就无了 D. Alice, Bob and Candies 题意:n个数字,奇数时间从左侧删数字,偶数时间从右侧删数字,每次删的数字之和必须 ...

  7. C# 9.0 终于来了, Top-level programs 和 Partial Methods 两大新特性探究

    一:背景 1. 讲故事 .NET 5 终于在 6月25日 发布了第六个预览版,随之而来的是更多的新特性加入到了 C# 9 Preview 中,这个系列也可以继续往下写了,废话不多说,今天来看一下 To ...

  8. 计算机网络之ARP协议

    ARP ARP(Address Resolution Protocol),即地址解析协议,是根据IP地址解析物理地址的一个TCP/IP协议.主机将包含目标IP地址信息的ARP请求广播到网络中的所有主机 ...

  9. FreeMarkerz在List中取任意一条数据的某一个值

    首先你要知道要取的数据的下标 <#list itemsList as item> <#if item_index==1> <#if "${item.value} ...

  10. css伪选择器使用总结——css中关于伪类和伪元素的知识总汇

    CSS 伪类用于向某些选择器添加特殊的效果,而CSS引入伪类和伪元素的概念是为了实现基于文档树之外的信息的格式化.这里讲总结关于css伪类和伪元素的相关使用 伪元素 :before/:before 在 ...