#PowerBi 10分钟学会,以X为结尾的聚合函数

powerbi,分钟,学会,结尾,聚合,函数 · 浏览次数 : 285

小编点评

**前言** 在Power BI中,我们经常需要对数据进行聚合计算,比如求和、求平均、求最大值等。Power BI提供了一系列的聚合函数,可以用来对表中列的值进行聚合然后返回一个值。这些函数通常只需要一个参数,就是要聚合的列名。如SUM(‘销售表’[销量]),就是求销售表里的销量总和。 **Excel版本** **Example 1:求销售总和** ```excel =SUMIF('销售表', '产品名', '产品 A') ``` **Example 2:求每个产品总销售额** ```excel =SUMIFS('销售表', '产品名', '产品 A', '销售表'[销量]) ``` **BI版本** 1. **创建新的虚拟列** - 在数据视图中,点击“数据”选项卡。 - 在“添加列”中,选择“新建”。 - 在“名称”中输入“总销售额”。 - 在“表达式”中输入以下公式: ```dax SUMX('销售表', '销售表'[销量]*RELATED('产品表'[价格])) ``` 2. **新建一张表并拉数据到值内** - 在 Power BI 中创建一个新的数据表。 - 在“数据”选项卡中,选择“从表格或网表”。 - 输入以下公式: ```dax SUMX('销售表', '销售表'[销量]*RELATED('产品表'[价格])) ``` - 点击“确定”。 3. **拉取值并进行汇总** - 在 Power BI 中创建一个新的图表。 - 选择“值”选项卡。 - 在“数据源”中选择刚刚创建的表格。 - 在“列”中选择“总销售额”。 - 在“根据”中选择“自定义”。 - 在“自定义公式”中输入以下公式: ```dax =SUM('销售表'[销量]*RELATED('产品表'[价格])) ``` - 点击“确定”。 - 点击“关闭”。

正文

前言

Power BI中,我们经常需要对数据进行聚合计算,比如求和、求平均、求最大值等。

Power BI提供了一系列的聚合函数,可以用来对表中列的值进行聚合然后返回一个值。这些函数通常只需要一个参数,就是要聚合的列名。如SUM(‘销售表’[销量]),就是求销售表里的销量总和。

但是有时候,我们需要对更复杂的表达式进行聚合计算,而不是单纯的一列。今天就来学一下迭代函数解决这类问题。

为了便于理解,本文结合excel分别做两个例子,一个excel版本,一个BI版本,对比学习。

本文示例数据表及BI模型构成

销售表如下:

产品表如下:

BI数据模型

一:聚合函数和迭代函数

1.1引用对象不同

聚合函数只接受单列引用(划重点),而迭代函数可以支持多列计算而聚合

1.2语法示例

聚合函数: SUM(‘销售表’[销量])

迭代函数: SUMX(表,表达式)

X为结尾的聚合函数非常强大和灵活,它们可以让我们对复杂的表达式进行聚合计算,而不受列或数据类型的限制。它们也可以和其他的表函数配合使用,比如FILTERRELATEDTABLE等,来实现更多的功能。

1.3  X函数罗列

SUMXCOUNTXMINXMAXXPRODUCTX等等

X为结尾的聚合函数有很多种,它们的区别在于最后的聚合方式不同。例如,SUMX是求和,MINX是求最小值,MAXX是求最大值,COUNTX是计数等等。它们的用法和语法都很类似,只要掌握了其中一个,就可以很容易地使用其他的。

1.4  为什么要用SUMX这类的迭代函数

日常工作中如果我们要计算一个销量,那么SUM(销售表[销量])就是计算销售表中销量列的所有值的和。

但是有时候,我们需要对更复杂的表达式进行聚合计算,而不是单纯的一列。比如,我们想要计算每个产品的总销售额,但是销售表中又没有产品的售价时,这个表达式涉及到两个表:销售表和产品表,它们之间有一个关联关系。如果我们直接用SUM函数来计算销售总和,就会得到错误的结果,因为SUM函数不能处理这样的表达式(因为涉及多列运算)。这时候,我们就需要用到以X为结尾的聚合函数。

二:案例分析

假设现在我们有两张数据源表。

目标是求得对应各个产品的总销售额。

销售表如下:

产品表如下:

2.1 Excel中的计算

如果是在excel中,我们可以根据产品名,用vlookup去匹配产品表中的产品售价,然后通过售价与销量相乘得到总的销售金额

然后透视表汇总结果

通过excel的实现中,最关键的其实就是新增列,然后通过新增列的值去求和在汇总。

2.2 POWERBI,DAX实现

产品销售金额 = SUMX('销售表','销售表'[销量]*RELATED('产品表'[售价]))

通过迭代函数只需要一行代码。第二参数可以是表达式,这里的related函数相当于上面excel中的vlookup,使得匹配上的值和销售进行了相乘(这里大家可以理解为在bi中我们新增了一个虚拟行去替代excel中我们新增的两列,而SUMX函数针对虚拟的行,逐行进行表达式的计算,最后针对汇总的虚拟行,进行了SUM求和)

最后,在bi中新建一张表,拉到值内,和excel中是一样的效果。

 其他以X结尾的迭代函数,也和SUMX的运行方式类似,大家可以举一反三,多在自己的业务中应用,来提高对这类函数的认识和熟练度。

 

与#PowerBi 10分钟学会,以X为结尾的聚合函数相似的内容:

#PowerBi 10分钟学会,以X为结尾的聚合函数

前言 在Power BI中,我们经常需要对数据进行聚合计算,比如求和、求平均、求最大值等。 Power BI提供了一系列的聚合函数,可以用来对表中列的值进行聚合然后返回一个值。这些函数通常只需要一个参数,就是要聚合的列名。如SUM(‘销售表’[销量]),就是求销售表里的销量总和。 但是有时候,我们需

#Powerbi 10分钟,理解 Rankx 排名函数

一:本文思维导图及示例数据图 1.1思维导图 1.2 示例数据图 二:度量值示例 2.1 函数简介 RANKX 首先为的每一行计值表达式,将结果临时存储为一个值列表。然后在当前筛选上下文中计值,将得到的结果与列表中的值进行比较,根据排名规则和的设置,返回最终排名。 2.2 产品排名(稠密)度量值 这

PowerBI_一分钟了解POWERBI计算组_基础运用篇(一)

在第一篇计算组的文章中,给大家介绍了,POWERBI的计算组功能的基本概念和作用。 本文,旨在通过简单案例,介绍计算组功能的具体应用场景。 没有看过第一篇的同学,可以先简单过一下第一篇,补齐一下概念和打开计算组功能。 https://www.cnblogs.com/simone331/p/18146

#Powerbi 季度时间进度计算

上一篇我们学习了月度时间进度的计算方法,今天我们学习季度时间进度的测算。 思路:找出目前共计消耗了多少天(季度),目前日期所在的季度共有多少天,两者相除即是季度的时间进度 首先列出DAX函数: 本季度第一天 = STARTOFQUARTER(TREATAS({TODAY()},'日期表'[日期]))

#Powerbi 利用视觉对象着色地图,制作数据地图

日常工作中,有时我们会遇到需要地图来展示我们的数据场景,利用POWERBI,我们可以快速的制作自己的业务地图。 Powerbi自带了三大地图,今天我们用到的是形状地图。 步骤讲解: 第一步:下载对应的地图资源,可以是全国的,也可以是具体省市的,这个根据我们的具体业务来进行选择。 http://dat

#Powerbi 理解VAR函数

VAR意思即为变量,在编程语言中,变量是一个重要概念,DAX作为一种语言也有变量概念,利用VAR,我们可以缩短我们一些DAX语句的长度,更清晰的表达我们的度量值计算逻辑。 举例说明: 我们要计算一个产品的同比增长率 如果不用VAR 第一步:需要计算今年的销售额 [Sales]=SUM(销售表[销售额

#Powerbi 利用时间智能函数,进行周度分析

在实际工作中,我们往往需要同比分析,月度和年度的分析都有对应的时间智能函数,分别是MTD和YTD,但是缺少了周度的时间智能函数,而 恰恰日常工作中,我们又需要以周度来进行对应的分析,今天我们来学习一下,如何使用Powerbi来进行周度分析。 我们这里假设要进行流量的周度分析,流量表里包含了日期、曝光

#Powerbi函数学习 SELECTEDVALUE与ISFILTERED

Power BI中的DAX函数ISFILTERED可以用来判断一个表或者一个列是否被筛选器所影响。 这个函数的语法很简单,就是ISFILTERED(),返回值是TRUE或者FALSE。那么,这个函数有什么用呢?我们来看一个例子。 第一步:数据源和基础度量值

#Powerbi 利用动态格式字符串功能,实现百分数智能缩位(powerbi4月重磅更新功能.)

以下内容(基于POWERBI 23年4月更新的最新版本) 实际业务中,日常报表一般都有一个较为规范的百分数缩位要求,如果统一要求保留一位小数,那么在有些时候,我们会面临被缩成0.0%的尴尬,例如原有的百分比为"0.02%",如果保留一位的话,powerbi会返回一个值为"0.0%"。 这时候如果我们

#PowerBI 1分钟学会,利用format函数,自定义格式显示

PowerBI是一款强大的数据分析和可视化工具,它可以帮助我们快速地创建各种报表和仪表盘,展示数据的洞察和价值。 在PowerBI中,有许多内置的函数可以帮助我们处理和转换数据,其中一个常用的函数就是Format函数。 Format函数的作用是将一个值按照指定的格式进行显示,例如日期、时间、货币、百