Power Bi:DAX函数总结

文章目录

  • 日期与时间函数
  • 筛选器函数
  • 逻辑判断函数
  • 逻辑函数
  • 统计函数
  • 文本函数

日期与时间函数

1.计算年初至今累计--TOTALYTD函数例如计算年初至今累计的销售金额:
[年累计金额]=
TOTALYTD([销售金额],'日历年'[日期])
# 如果要加上一个时间截止点,则写为:
[年累计截止金额]=
TOTALYTD([销售金额],'日历年'[日期],'日历年'[日期]<DATE(2016,6,1))
# 同理计算季度初至今累计--TOTALQTD, 计算月初至今累计--TOTALMTD2.计算上一年/季度/月的销售额--DATEADD函数
[上一年销售额]:=
CALCULATE([销售金额],DATEADD('日历年'[日期],-1,YEAR))  --YEAR可改为QUARTER,MONTH,DAY---1改为+1则时间后移3.计算同比/环比
# 月同比--今年每月的销售金额相比去年同月份增长的比率
[上一年销售额]:=
CALCULATE([销售金额],DATEADD('日历年'[日期],-1,YEAR))
[同比]:=
DIVIDE([销售金额]-[上一年销售额],[上一年销售额])# 月环比--这月与上月相比销售额增长的比率
[上一月销售额]:=
CALCULATE([销售金额],DATEADD('日历年'[日期],-1,MONTH))
[环比]:=
DIVIDE([销售金额]-[上一月销售额],[上一月销售额])4. 计算两个日期之间间隔--DATEDIFF
[时间间隔]:=
DATEDIFF([开始日期],[结束日期],'Y')   --参数"Y"换成"M""D",则分别对应月和日--也可以改成HOUR,MINUTE,SECOND计算小时,分,秒5.其他日期时间函数:
DATE(2009,7,8)  --结果返回'2009/7/8 0:00:00'
DATEVALUE("8/1/2009")  --将文本形式的日期转换为日期时间格式的日期,结果返回'2009/8/1 0:00:00'
DATEADD([日期],3,DAY)  --日期加减函数
EOMONTH([日期],3)      --返回指定月份数之前或之后的月份的最后一天的日期
EDATE([日期],3)        --返回在开始日期之前或之后指示的月数的日期   
YEAR(),MONTH(),DAY(),HOUR(),MINUTE(),SECOND()
NOW() --返回当前的日期时间  TODAY()--返回当前的日期          
WEEKDAY([日期],1)  --一周中的第几天,参数1代表从星期日开始计数,参数2代表从星期一开始计数参数3代表从星期一开始计数,但到星期六结束
WEEKNUM([日期],1)  --一年中的第几周,1代表从周日开始计数,2代表从周一开始计数 

筛选器函数

1.ALL, ALLEXCEPT, ALLSELECTED
ALL(table/column)  --ALL用来清除整个表或某个字段的筛选条件,通常配合CALCULATE使用
ALLEXCEPT(table/column) --删除表中除已应用于指定列的筛选器之外的所有上下文筛选器
ALLSELECTED(table/column) --从当前查询的列和行中删除上下文筛选器,同时保留所有其他上下文筛选器或显式筛选器2.CALCULATE(<expression>,<filter1>,<filter2>...)
--Calculate可以应用在多个表Calculate使用AND关系时可直接在条件间加',',但表达“或”时,必须用'||',而且连接的两个条件必须引用同一列。Calculate中当“[列] = 固定值”这种筛选搞不定时,可用filter/all/values筛选器搭配使用3.FILTER(table,<filter>)  --返回值:只包含筛选行数据的表
--筛选时对表进行逐行扫描,计算量很大,所以选择筛选的表尽量为lookup表4.HASONEVALUE(<columnName>) --将 columnName 的上下文筛选为只剩下一个非重复值时,将返回 TRUE。 否则为 FALSE5.RELATED(<column>)  --将“一”端的列值添加到“多”端的表中RELATEDTABLE(<tableName>) --将“多”端关联的表数据添加到“一”端的列上,返回的是一张表6.VALUES(<TableNameOrColumnName>)  --返回由一列构成的一个表,该表包含来自指定表或列的非重复值。 换言之,重复值将被删除,仅返回唯一值。7.EARLIER函数:例如我们有“产品名称”和“销售金额”两列数据。基于此,我们希望计算出每个产品的销售金额排名。COUNTROWS(FILTER('产品销售表',EARLIER('产品销售表'[销售金额])<'产品销售表'[销售金额]))+1--EARLIER=当前行,按照当前行进行逐行扫描,SUMX+FILTER+EARLIER 是Power Pivot中比较常用的函数组合,由于Earlier针对每一行数据都进行计算,所以理论上计算量相当于数据行数的平方。如果有10行数据,则需要计算100次,所以数据量大的时候大家使用要小心,有可能会造成模型计算缓慢。

逻辑判断函数

1.CONTAINS(InternetSales, [ProductKey], 214, [CustomerKey], 11185)--是否同时存在销售给客户 11185 的产品 214 的任何 Internet 销售额。
2.ISBLANK(column) --判断该列中某个值是否为空
3.ISNONTEXT(column)  --检查某个值是否不是文本
4.ISNUMBER(column)  --检查某个值是否为数字
5.ISTEXT(column)    --检查某个值是否为文本
6.ISLOGICAL(column) --检查某个值是否是逻辑值

逻辑函数

1.IF(logical_test>,<value_if_true>, value_if_false)--检查是否满足作为第一个参数提供的条件。 如果该条件为 TRUE,则返回一个值;如果该条件为 FALSE,则返回另一个值,用法与excel类似2.SWITCH(<expression>,条件1,1,条件2,2)  --根据值列表计算表达式,并返回多个可能的结果表达式之一。

统计函数

1. SUMX(table,<expression>)  --SUMX与CALCULATE功能类似,但SUMX属于迭代函数,计算量大--同理AVERAGEX,MINX.MAXX用法相同
2. SUM(),MAX(),MIN(),SQRT()DISTINCTCOUNT()--计算去重后列所包含的元素个数COUNTROWS()  --计算表的行数COUNT()  --计算列中包含数字的单元的数目COUNTA()  --计算列中不为空的单元的数目COUNTBLANK()  --计算列中空白单元的数目3.DIVIDE(分子,分母)  --在DAX中涉及到除法必须用DIVIDE4.CROSSJOIN(<table1>, <table2>)  --生成笛卡尔积表SUMMARIZE(<table>, <groupBy_columnName>,<name>,<expression>)--table,任何返回数据表的 DAX 表达式。groupBy_columnName将使用该列中找到的值创建摘要组,此参数不能是表达式。name,给予总计或汇总列的名称,包含在双引号内。expression,任何返回单个标量值的 DAX 表达式,其中,表达式将计算多次(针对每行/上下文)。GENERATE(<table1>, <table2>)--生成笛卡尔积表

文本函数

1. LEFT(),RIGHT(),MID(),FIND(),SEARCH(),LEN() ---字符串提取函数2. REPLACE(),SUBSTITUTE()  --字符串替换函数3. TRIM(),LOWER(),UPPER()4. FORMAT函数,对于日期格式的自定义设置如下图:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/474878.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

javascript “||”、“”的运用

你是否看到过这样的代码&#xff1a;aa||""; 可能javascript初学者会对此感到茫然。今天就跟大家分享一下我的一些心得。 其实,以下三种方式是完全等价的 aa||"defaultValue"; if(!a){a"defaultValue";} if(anull||a""||aundefined){…

MySql:函数总结

文章目录字符串函数数学函数日期和时间函数流程函数其他函数字符串函数 数学函数 日期和时间函数 流程函数 其他函数

endnote怎么和word关联_endnote x9怎么和word关联?Word中用EndNote X9教程

刚刚接触EndNote X9这款文献写作管理软件&#xff0c;不能熟练的在Word中用EndNote X9引入文献&#xff0c;不知道endnote x9怎么和word关联。这里小编为大家带来了Word中用EndNote X9教程&#xff0c;一起来看看吧&#xff01;下载安装好 word2019与endnote X9打开系统偏好设置…

[Hands On ML] 6. 决策树

文章目录1. 训练与可视化2. 分类预测3. 模型参数4. 回归5. 不稳定性本文为《机器学习实战&#xff1a;基于Scikit-Learn和TensorFlow》的读书笔记。 中文翻译参考 《统计学习方法》决策树笔记 决策树可以分类&#xff0c;也可以回归&#xff0c;还有多输出任务 是随机森林的基…

【转载】KMP算法详解

如果机房马上要关门了&#xff0c;或者你急着要和MM约会&#xff0c;请直接跳到第六个自然段。 我们这里说的KMP不是拿来放电影的&#xff08;虽然我很喜欢 这个软件&#xff09;&#xff0c;而是一种算法。KMP算法是拿来处理字符串匹配的。换句话说&#xff0c;给你两个字符…

LeetCode MySQL 1459. 矩形面积

文章目录1. 题目2. 解题1. 题目 表: Points ------------------------ | Column Name | Type | ------------------------ | id | int | | x_value | int | | y_value | int | ------------------------ id 是该表主键. 每个点都表示…

mesh和wifi中继的区别_小米官方科普路由器Mesh功能,它和普通的中继有什么区别...

原标题&#xff1a;小米官方科普路由器Mesh功能&#xff0c;它和普通的中继有什么区别不知道各位在选购路由器的时候会不会关注路由器的Mesh组网功能&#xff0c;也可能有许多小伙伴在购买选购路由器的时候没有很关注过相关的功能和参数。而最近&#xff0c;小米就将其旗下的AX…

STP分析--保险公司客户分类分析(采用SPSS进行分析)

文章目录研究目的&#xff1a;精准营销研究内容&#xff1a;客户分类维度数据获取与处理设计调查问卷及确定调研计划数据处理数据分析架构客户细分目标客户选择目标客户定位数据分析与输出结果确定分类维度分类维度的消减适应性检验因子提取因子旋转因子命名计算因子得分设置因…

详解Objective-C消息传递机制

Objective-C获取消息工作机制是本文要介绍的内容&#xff0c;看name mangling的时候&#xff0c;也讲到了Objective-C的name mangling&#xff0c;于是又重新读了一下Objective-C 2.0 programming Language以及Objective-C 2.0 Runtime Reference里的相关内容,自己归纳一下 。…

vuedraggable示例_vuedraggable快速入门

value和list这两个都可以给一个draggable注入数据源&#xff1a;/*value注入数据源*/export default {data() {return {list:[{name:aaa,id:1,},{name:bbb,id:2,}]};}}/*list注入数据源头*/export default {data() {return {list:[{name:aaa,id:1,},{name:bbb,id:2,}]};}}它们的…

LeetCode MySQL 1468. 计算税后工资

文章目录1. 题目2. 解题1. 题目 Salaries 表&#xff1a; ------------------------ | Column Name | Type | ------------------------ | company_id | int | | employee_id | int | | employee_name | varchar | | salary | int | ----------…

ETL详解

ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程&#xff0c;目的是将企业中的分散、零乱、标准不统一的数据整合到一起&#xff0c;为企业的决策提供分析依据。 ETL是BI项目重要的一个环节。 通常情况下&#xff0c;在BI项目中ETL会花掉整个项目至少1/3的时…

博客园

为更好的分享本人的博客&#xff0c;本人在博客园地址&#xff1a;http://www.cnblogs.com/blogyuan/&#xff0c;里面也有博文&#xff0c;本博客将不定期将两个博客上的博文同步&#xff0c;欢迎转载&#xff01; 转载于:https://www.cnblogs.com/blogyuan/archive/2012/11/0…

LeetCode MySQL 1421. 净现值查询

文章目录1. 题目2. 解题1. 题目 表: NPV ------------------------ | Column Name | Type | ------------------------ | id | int | | year | int | | npv | int | ------------------------ (id, year) 是该表主键. 该表有…

apache大师+伪静态_Apache开启伪静态示例

Apache开启伪静态示例环境&#xff1a;系统 WindowsApache 2.2加载Rewrite模块&#xff1a;在conf目录下httpd.conf中找到LoadModule rewrite_module modules/mod_rewrite.so这句&#xff0c;去掉前边的注释符号“#”&#xff0c;或添加这句。允许在任何目录中使用“.htaccess”…

从入门到深入Fiddler 2 (二)

AutoResponder 快速引用 今天我们来看一下Fiddler的AutoResponder选项卡的强大功能。 Fiddler的AutoResponder 选项卡允许你使用本地硬盘的文件来作为返回内容&#xff0c;而不是把请求发往服务器。 创建AutoResponder 规则。 使用AutoResponder选项卡&#xff0c;你可以创建一…

探索性数据分析EDA及数据分析图表的选择

文章目录一、探索性数据分析EDA二、数据分析图表的选择一、探索性数据分析EDA 探索性数据分析(Exploratory Data Analysis&#xff0c;简称EDA)&#xff0c;指对数据分析的过程中尽量不加入先验假设&#xff0c;而是通过作图表和统计等方式来探索数据结构和规律。 在EDA中你可…

LeetCode MySQL 608. 树节点

文章目录1. 题目2. 解题1. 题目 给定一个表 tree&#xff0c;id 是树节点的编号&#xff0c; p_id 是它父节点的 id 。 ---------- | id | p_id | ---------- | 1 | null | | 2 | 1 | | 3 | 1 | | 4 | 2 | | 5 | 2 | ---------- 树中每个节点属于以下三种类…

xshell 打开文件跳转到最后_如何在Xshell中打开Xftp

Xftp作为远程文件传输软件&#xff0c;与Xshell终端模拟器同属于Xmanager&#xff0c;这两款软件经常配合使用&#xff0c;用来给远程服务器上传文件非常方便。那么在使用Xshell的时候怎样打开Xftp呢&#xff1f;下面就来给大家介绍具体操作技巧。如果安装了一、XShell中打开如…

网络资源-深入剖析Binding2(学习)

WPF Binding WPF里分三种Binding&#xff1a;Binding&#xff0c; PriorityBinding, MultiBinding,这三种Binding的基类都是BindingBase&#xff0c;而BindingBase又继承于MarkupExtension Binding&#xff1a; 提供对绑定定义的高级别访问&#xff0c;绑定将绑定目标对象&…