大数据分析工具Power BI(七):DAX使用场景及常用函数

2023-03-27 20:58:41 来源:腾讯云 分享到:

DAX使用场景及常用函数

Power BI中DAX函数非常多,功能非常强大,下面结合一些实际场景来讲解DAX一些常用的函数,这些场景包含求和、计数、相除、排序、累计、环比、同比,为了更方便后续的可视化展示数据,我们新创建可视化展示的页面,创建一个新表存储后续展示的度量值,具体操作如下:

经过以上步骤的操作可以在"字段"区域看到对应的新建的"度量值表",后续在各个场景中使用时需要选中该"度量值表"后再新建"度量值"这样新创建的度量值会保存到该表中。


(资料图片仅供参考)

一、求和统计

需求:对"2022年点播订单表"统计营收总金额进行展示。

通过观察"2022年点播订单表"数据可以看到没笔订单都有对应的套餐价格以及优惠金额,每笔订单的营收即:套餐金额-优惠金额,所以统计营收总金额将每笔订单的套餐金额-优惠金额累加起来就可以。具体操作步骤如下:

1、在"度量值表"中新建度量值"总营收金额"

度量值DAX公式为:总营收金额 = SUM("2022年点播订单表"[套餐价格])-SUM("2022年点播订单表"[优惠金额])

注意在"度量值表"中我们也可以将后续不使用的"列1"列删除。

2、使用多行卡图进行展示结果

以上创建的度量值可以随着我们可视化指标的不同而变化,例如,统计不同套餐的营收金额,统计不同商圈的营收金额,都可以使用创建的该度量值。操作如下:

同样的方式我们也可以创建可视化表将"门店信息表"中的"商圈类型"与"总营收金额"展示在一起,如下:

并且还可以点击两表中不同的行进行联动,如下:

二、计数统计

在Power BI中用于计数的函数有两个:COUNT和COUNTA,两者都可以对某一列进行计数,用法上一样,区别为COUNTA可以对True或者False列分别统计True和False的数量,所以使用更加广泛。

COUNTA函数的使用方式如下:

COUNTA(ColumnName)

复制

以上"ColumnName"是我们传入到COUNTA函数中要进行计数的列。下面我们新建度量值"总订单量"使用COUNTA函数统计"2022年点播订单表"中总订单数量:

度量值DAX公式为:总订单量 = COUNTA("2022年点播订单表"[订单号])

将创建的"总订单量"度量值拖入到之前创建的"多行卡"中,操作如下:

除了以上计数的需求外,在数据分析时我们还需要进行去重统计,这就需要用到DISTINCTCOUNT函数,DISTINCTCOUNT函数的用法如下:

DISTINCTCOUNT(ColumnName)

复制

以上传入的"ColumnName"列就是需要统计不重复数的列。下面我们创建新的度量值"不重复机器数"来统计"2022年点播订单表"中不重复的机器数量,操作如下:

度量值DAX公式为:不重复机器数 = DISTINCTCOUNT("2022年点播订单表"[机器ID])

将创建的"不重复机器数"度量值拖入到之前创建的"多行卡"中,操作如下:

三、相除统计

在Power BI中有一些场景需要使用到数据相除,我们可以通过"/"符号实现或者使用"DIVIDE"函数实现。使用"/"符号时分母不能为0,使用DIVIDE分母可以为零,这时结果会返回空值,由于DIVIDE函数比较安全,在相除场景下我们经常使用DIVIDE函数。DIVIDE函数的用法如下:

DIVIDE(分子,分母,[分母为零或空时返回的值,默认为空值])

复制

下面通过DIVIDE函数来统计"2022年点播订单表"中成交订单均价(使用总营收金额/总订单数),这里也是通过创建"度量值"来实现,操作如下:

度量值DAX公式为:订单均价 = DIVIDE("度量值表"[总营收金额],"度量值表"[总订单量])

将创建的"订单均价"度量值拖入到之前创建的"多行卡"中,操作如下:

四、排序统计

在Power BI中要实现排序功能可以借助RANKX和ALL函数来实现。RANKX函数功能是排序,其用法如下:

RANKX(表,表达式)

复制

RANKX函数中"表"指的是需要排序的表单,也可以是通过DAX表达式生成的表单,一般我们可以搭配ALL来生成表单,"表达式"是指排序的依据。

ALL函数功能是返回表中所有行或列中的所有值并忽略已应用的任何筛选器,即去除筛选。其用法如下:

ALL([TableNameOrColumnName],[ColumnName]... ...)

复制

ALL第一个参数可以是表也可以是列,表示对表或者列去除筛选。

在使用RANKX函数时必须搭配ALL函数一起使用,表示去除筛选起到绝对排序的效果。下面通过RANKX函数和ALL函数结合创建"商圈营收排名"度量值来统计"2022年点播订单表"中商圈类型营收金额的排名。

首先创建"商圈营收排名"度量值,度量值DAX公式为:商圈营收排名 = RANKX(ALL("门店信息"[商圈类型]),"度量值表"[总营收金额] )

将创建的"商圈营收排名"度量值拖入到之前创建的"表"中,操作如下:

可以看到商圈类型中对应的排名结果。

五、占比统计

一些场景下我们需要统计占比,可以通过DIVIDE和CALCULATE函数来实现,DIVIDE函数前面有介绍,不再赘述。CALCULATE函数是DAX函数中最重要和常用的函数,主要功能是根据指定的条件对数据进行筛选然后按照指定的表达式进行计算,找出满足条件的数据,其用法如下:

CALCULATE(表达式,[筛选器1],[筛选器2]... ...)

复制

以上"表达式"参数是指对筛选后的数据进行计算的表达式,可以执行各种聚合计算,后续参数是一系列的筛选器,筛选器也可以为空,多个筛选器之间用逗号分割,多个筛选器都满足的数据集合才会被指定的表达式进行计算,并返回计算的结果。例如统计"2022年点播订单表"中单曲套餐订单数与总订单量的占比,可以通过以下步骤实现:

首先创建度量值"单曲占比量",度量值DAX公式为:单曲占比量 = DIVIDE(CALCULATE("度量值表"[总订单量],"2022年点播订单表"[套餐名称]="单曲"),"度量值表"[总订单量])

将创建的"单曲占比量"度量值拖入到之前创建的"多行卡"中,操作如下:

可以看到单曲点播的订单占了总订单的将近1半。

六、累计统计

在Power BI中针对时间维度进行累计值统计也是常见的场景,例如统计每月累计交易额、统计每个季度累计交易额等,这就要使用到累计相关的DAX函数,累计相关的DAX函数有三个:TOTALYTD、TOTALQTD、TOTALMTD。

TOTALYTD:计算从本年开始到当前的累计。TOTALQTD:计算从本季度开始到当前的累计。TOTALMTD:计算从本月开始到当前的累计。

这几个函数的用法一致,只不过计算的时间维度不同。下面我们分别进行介绍。

需求:针对"2022年点播订单表"统计累计到当前的总营收金额。

以上需求我们可以使用TOTALYTD进行统计,TOTALYTD用法如下:

TOTALYTD(表达式,日期列,[筛选器],[截止日期])

复制

表达式参数代表统计的表达式,日期列参数指定日期时间列,筛选器参数可以过滤数据,截止日期参数指定的是统计截止日期,一般我们使用TOTALYTD时只需要传入前2个参数即可。

完成以上需求首先创建"年累计营收"度量值,并输入度量值DAX公式:年累计营收 = TOTALYTD("度量值表"[总营收金额],"动态日期表"[Date])

在"报表"视图中创建创建可视化"矩阵",在动态日期表中依次选择"季度"和"月份"设置为列,在度量值表中将刚刚创建的"年累计营收"设置为值,绘制可视化图如下:

按照以上同样的方式,创建"季累计营收"和"月累计营收"度量值,并输入对应的度量值DAX公式为: TOTALQTD("度量值表"[总营收金额],"动态日期表"[Date]) 和 TOTALMTD("度量值表"[总营收金额],"动态日期表"[Date]) ,并绘制"矩阵"图,如下:

七、同比与环比统计

在数据分析中我们也经常遇到同比和环比的分析场景,同比和环比是两个不同的概念,同比是指相邻时间段某个相同的时间点的比较,例如:2021与2022年是两个相邻的年份(相邻时间段),2021年5月与2022年5月是这两个相邻时间段的相同时间点都是5月,比较这两个时间段的数据是同比。

环比相对于同比简单,即:相邻的两个时间段的比较,例如:2022年5月和2022年6月数据比较这就是环比。

在资料中找到"2021~2022年工资表"导入到PowerBI中并修改对应的日期格式,如下图所示:

下面我们分别在PowerBI中针对"2021~2022年工资表"数据统计工资月同比增长率与工资月环比增长率。

统计月同比增长率

在PowerBI中针对同比业务场景我们需要用到SAMEPERIODLASTYEAR函数,该函数作用是返回去年同期对应数据,通常用来与去年同期进行同比,其用法如下:

SAMEPERIODLASTYEAR(日期列)

复制

以上"日期列"参数需要传入日期的列。工资月同比增长率计算方式为:(本月工资-去年同期月份工资)/去年同期月份工资,可见统计月同比增长率除了要使用SAMEPERIODLASTYEAR函数外还需要用到CALCULATE和DIVIDE函数,按照以下步骤来统计工资月同比增长率:

在"度量值表"中创建新的度量值"当月工资"

创建该度量值的主要目的是方便后续的使用,也可以不创建。度量值DAX公式为:当月工资 = SUM("2021~2022年工资表"[工资])

在"度量值表"中创建新的度量值"去年同期月份工资"

度量值DAX公式为:去年同期月份工资 = CALCULATE("度量值表"[当月工资],SAMEPERIODLASTYEAR("2021~2022年工资表"[年月]))

在"度量值表"中创建新的度量值"工资同比增长率"

度量值DAX公式为:工资同比增长率 = DIVIDE("度量值表"[当月工资]-"度量值表"[去年同期月份工资],"度量值表"[去年同期月份工资])

在"报表"视图中创建可视化"矩阵"展示"工资同比增长率"数据

注意需要修改"2021~2022年工资表"中年月列的格式为非层次结构。在可视化表中我们可以看到对应的"去年同期月份工资"及"工资同比增长率"结果。

统计月环比增长率

计算工资月环比增长率公式为:(本月工资-上月工资)/上月工资,如果想要根据本月工资获取到上月工资我们就需要用到DATEADD函数,DATEADD函数用法如下:

DATEADD(日期列,偏移量,偏移单位)

复制

以上"日期列"参数指的是包含日期的列;"偏移量"参数指定的是从日期列中需要添加或减去的时间间隔数;"偏移单位"参数指的是Day,Month,Quarter,Year按照哪个时间维度偏移。按照以下步骤来统计工资月环比增长率:

在"度量值表"中创建新的度量值"当月工资"

这个在计算同比时已经创建可以省略。

在"度量值表"中创建新的度量值"上月工资"

度量值DAX公式为:上月工资 = CALCULATE("度量值表"[当月工资],DATEADD("2021~2022年工资表"[年月],-1,MONTH))

在"度量值表"中创建新的度量值"工资环比增长率"

度量值DAX公式为:工资环比增长率 = DIVIDE("度量值表"[当月工资]-"度量值表"[上月工资],"度量值表"[上月工资])

在"报表"视图中创建可视化"矩阵"展示"工资环比增长率"数据

在可视化表中我们可以看到对应的"工资环比增长率"结果。

标签:

大数据分析工具Power BI(七):DAX使用场景及常用函数

来源:腾讯云 2023-03-27 20:58:41

遇见文明瞬间|春熙路步行街:文明打卡,垃圾入桶-每日热文

来源:锦观新闻 2023-03-27 19:21:15

通讯!政策解读 | 《文化和旅游部关于推动在线旅游市场高质量发展的意见》

来源:中国文化传媒网 2023-03-27 17:55:23

7座SUV与7座MPV怎么选?首付30%买领克09 EM-P与本田奥德赛谁更好

来源:懂车帝 2023-03-27 16:59:31

山东菏泽准生证办理的具体流程是哪些样的呢_全球热消息

来源:法师兄 2023-03-27 16:00:19

【证券日报】中国钢材价格优势凸显,出口强势或延续至5月份

来源:我的钢铁网 2023-03-27 14:26:29

安耐克P-180_1GB-新要闻

来源:互联网 2023-03-27 12:41:18

新消息丨四川省委网信办、证监局联合开展非法证券活动网上信息专项治理

来源:证券时报网 2023-03-27 11:26:32

奥联电子3月27日快速上涨

来源:东方财富Choice数据 2023-03-27 10:25:57

反电诈进行时|强化群众反诈意识 守住人民群众“钱袋子”|全球新动态

来源:吉林新闻 2023-03-27 09:12:23

环球播报:国乒“直通德班”世乒赛选拔赛战火重燃

来源:光明网 2023-03-27 07:44:24

天天看热讯:地下城与勇士单机版手机版_地下城与勇士单机版

来源:互联网 2023-03-27 04:10:11

桃李面包、妙可蓝多增收不增利,两家食品行业龙头遇瓶颈?

来源:证券市场红周刊 2023-03-26 23:03:06

桃有黑点能吃吗 桃子有黑点能不能继续吃呢

来源:伊秀经验网 2023-03-26 20:56:17

焦点资讯:大叔发现茶叶上的“金子”,直接收获500万元,他是如何做到的?

来源:新农人观察账号 2023-03-26 18:03:32

密尔克卫:控股股东拟增持1000万元-1500万元公司股份

来源:财联社 2023-03-26 16:12:40

2022年8月15日五行穿衣配色-全球热点

来源:万年历 2023-03-26 16:11:21

环球快消息!广告费税前扣除比例怎么算_广告费税前扣除比例

来源:互联网 2023-03-26 14:03:45

清明节将至 多样祭祀方式让思念有“形”更有“情”_焦点热门

来源:央视新闻客户端 2023-03-26 11:07:38

早读丨广东公布1-2月经济数据;张文宏在穗发声:我们离走出“新冠”应该为时不远

来源:金羊网 2023-03-26 09:11:59

华氏温度是什么意思_全球时快讯

来源:万年历 2023-03-26 08:24:37

报道:2022年成都人均可支配收入47948元 年末常住人口2126.8万人

来源:全关注 2023-03-26 06:01:34

全球最新:无敌都市小说_完本都市异能小说

来源:互联网 2023-03-26 01:02:40

首届海丝泉州数字文创博览会开幕 天天播报

来源:中国新闻网 2023-03-25 20:53:06

虎门大桥抖动是怎么了_焦点热文

来源:万年历 2023-03-25 19:28:27

这些广告禁止发布!互联网广告新规5月起施行|全球简讯

来源:中国新闻网 2023-03-25 18:09:14

简讯:2023年3月25日IOS的AppStore软件限免8个APP推荐

来源:IOS每日限免APP推荐 2023-03-25 16:13:36

头条焦点:打印机已共享但搜索不到_怎么共享别人电脑上的打印机

来源:互联网 2023-03-25 13:56:18

观热点:三国杀陈宫技能怎么算

来源:万年历 2023-03-25 11:50:30

全球消息!智算积蓄新动能打造成都人工智能产业高地

来源:互联网 2023-03-25 11:04:25

Copyright   2015-2022 亚太知识产权网 版权所有  备案号:沪ICP备2020036824号-11   联系邮箱: 562 66 29@qq.com