专栏名称: PowerBI战友联盟
微软 Power BI MVP BI佐罗 带你学习BI真经。
目录
相关文章推荐
51好读  ›  专栏  ›  PowerBI战友联盟

DAX 实战:如何跨多个表进行聚合操作

PowerBI战友联盟  · 公众号  ·  · 2024-07-05 18:47

正文

请到「今天看啥」查看全文


在数据分析中,我们经常需要从多个表中提取信息,并进行复杂的计算。例如,我们可能需要计算跨多个维度的聚合值。今天我们将带大家学习如何在 Power BI 中实现这一计算。
举个例子,假设我们有两个维度表,一个是地理位置表,包含各个城市的信息;另一个是日历表,包含日期信息。我们的目标是计算所有省份在所有时间段(某年某月)的最大销售额,这应该怎么计算呢?
在 Power BI 中计算最大值,我们第一时间想到的是 MAX 函数和  MAXX 函数。MAX 函数的参数只能是列,我们这里选择 MAXX 函数。
MAXX 的用法如下。

如果我们计算单表的最大值,以日历表为例,计算所有年月的最大销售额。
DAX 语句为:
年月最大销售额 = MAXX (    ALL (        'Dim Calendar'[YearNameCN],        'Dim Calendar'[MonthNameCN]    ),    [Sales])
计算单表最大值对于 MAXX 函数来说还是比较简单的。
我们新建一个表格验证一下正确性。

计算正确,如果我们再加一个表,计算出所有省份在所有年月的最大销售额,这应该怎么计算。
在计算之前,我们应该先构建出一个包含所有省份和所有年月的表,也就是省份和年月的笛卡尔积,表应该是这样的。

我们可以使用 CROSSJOIN 函数实现,CROSSJOIN 函数语法如下。

使用 CROSSJOIN 求出省份和年月的笛卡尔积,新建一个表,看下结果。

如果我们把这个表当做是 MAXX 函数的第一个参数表,那计算所有省份所有年月最大销售额的 DAX 语句为:
最大销售额 =MAXX (    CROSSJOIN (        ALL ( 'Dim 地理位置'[省份] ),        ALL (            'Dim Calendar'[YearNameCN],            'Dim Calendar'[MonthNameCN]        )    ),    [Sales])
还是新建一个表格来验证一下结果。

求最小值、平均值等也是一样的道理,比如计算所有省份在所有年月的最小利润。
最小利润 = MINX (    CROSSJOIN (        ALL ( 'Dim 地理位置'[省份] ),        ALL (            'Dim Calendar'[YearNameCN],            'Dim Calendar'[MonthNameCN]        )    ),    [Profit])
结果如下。

在 Power BI 中进行多表聚合操作,我们只需要使用增强版聚合 X 函数加上 CROSSJOIN 函数连接多个表即可轻松实现跨多表的聚合操作。理解这些函数及其组合使用,对于在 Power BI 中进行高级数据分析和报告制作非常重要。
希望这篇文章对你有所能帮助,赶快去 Power BI 中试一试吧。

数据分析精英都会遇到的二十大分析问题

分析师必看: 业财人面临的二十大数据分析问题

数据分析精英都在学习的五大能力境界


分析师必备: 业务数据分析能力五层成熟度路线图框架全解


↓ 数据分析精英正在学习的课程 ↓

他们是:企业老板,高管,CFO,分析...
可以体验百万级真实企业项目案例,彻底打通任督二脉

数据分析师训练营 课程表

课程: 《业财分析之道》 业务财务人数字化能力必修课 🔥 🔥 🔥
2024年7月 满
2024年8月 少量席位

🎓 更多热门课程推荐👇👇👇

🚀 《业财分析之道》 业务财务人数字化能力必修课
📈 《经营分析之道》 企业指标拆解及经营分析框架

🔍 数据分析之道 精通分析十大方法加十大模型
💡
PowerBI 真经 更专业更系统化学习 Power BI

🔗 如何获取更多信息?扫描下方二维码具体咨询。

如果您觉得这篇文章对您有帮助或启发
感谢您【点赞】、【在看】
如果您需要添加老师,也请先 【点赞】、【在看】

这样老师才能更快地识别并回应

跟BI佐罗老师更专业更系统学企业数据分析
点击“阅读原文”获取更多资源







请到「今天看啥」查看全文