DAX Calculate&SUMMARIZE 关键词的说明

本文详细介绍了DAX表达式中CALCULATE函数的使用方法,特别是在多对多关系或雪花模型中如何结合SUMMARIZE函数来定义具有联动效果的度量值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

https://technet.microsoft.com/en-us/library/ee634825.aspx


CALCULATE(<expression>,<filter1>,<filter2>…)

当第一个expression参数是Measure时, 后面的参数 filter1, filter2 等不能是bool型

如果expression参数是Measure时, 后面可以是个table形式的参数, 会对Measure所在的表进行filter(在共有的列上)

所以我们经常看到, CALCULATE的后几个参数可以是summarize函数, 因为它会返回一个table的子集(还是一个table)


似乎在tabular cube中有这样一个规则: 如果两张表存在直接的关联, 那么在查询时对其中一张表filter, 另一张表的Measure也会作出相应filter, 但在多对多关系中, 或者雪花模型中, 两个表的关系还夹着1张或更多中间表, 那么就需要使用CALCULATE 和 summarize的组合来定义Measure, 这样定义的Measure才会有联动的效果.

<think>我们正在解决用户的问题:在Power BI中输入DAX公式的具体位置。根据用户之前的对话,用户已经了解了一些DAX的基本知识,现在想知道在哪里添加或编辑DAX公式。在Power BI中,DAX公式主要用于创建计算列、度量值和计算表。因此,我们需要说明在这三种情况下如何输入DAX公式。具体步骤:1.创建度量值:在“字段”窗格中右键单击表名,选择“新建度量值”。2.创建计算列:在“字段”窗格中选中表,然后右键单击,选择“新建列”;或者直接在“表工具”的“新建列”按钮。3.创建计算表:在“建模”选项卡中选择“新建表”。另外,编辑已有的度量值或计算列,可以在字段窗格中右键单击该度量值或计算列,选择“编辑”即可。同时,我们还可以提到DAX公式编辑器的位置和快捷键(引用[3]中提到了一些快捷键,可以适当提及)。注意:用户可能使用的是Power BIDesktop,所以以Desktop为例。回答结构:1.创建度量值的位置和步骤2.创建计算列的位置和步骤3.创建计算表的位置和步骤4.编辑现有公式的方法5.关于DAX公式编辑器的一些提示(如快捷键)最后,生成相关问题。</think>在 Power BI 中输入和编辑 DAX 公式主要通过以下三个入口实现: ### 1. 创建/编辑度量值(最常用) - **位置**:字段窗格(右侧) - **步骤**: 1. 右键单击目标表 → 选择"新建度量值" 2. 在公式栏输入 DAX 公式(顶部出现 DAX 编辑器) 3. 按 `Enter` 或点击 ✓ 保存 - **编辑**:右键单击现有度量值 → "编辑度量值" ### 2. 创建计算列 - **位置**:表工具选项卡 - **步骤**: 1. 在字段窗格选中目标表 2. 顶部功能区 → "表工具"选项卡 3. 点击"新建列"按钮 → 在公式栏输入 DAX - **快捷键**:`Alt`+`F11`(快速新建列)[^3] ### 3. 创建计算表 - **位置**:建模选项卡 - **步骤**: 1. 顶部功能区 → "建模"选项卡 2. 点击"新建表"按钮 3. 输入形如 `表名 = DAX公式` 的表达式 ```dax 销售汇总 = SUMMARIZE('订单表', '订单表'[产品ID], "总销售额", SUM('订单表'[金额])) ``` ### DAX 编辑器功能详解 ![DAX 编辑器界面](https://learn.microsoft.com/zh-cn/power-bi/transform-model/media/desktop-formula-editor/desktop-formula-editor-2.png) *(示意图:公式栏、自动补全、函数提示)* - **智能提示**:输入时自动显示函数/字段建议(按 `Tab` 选择) - **语法检查**:错误公式显示红色波浪线 - **多行编辑**:`Shift`+`Enter` 换行 - **注释**:`Ctrl`+`K` → `Ctrl`+`C`(取消注释 `Ctrl`+`K` → `Ctrl`+`U`)[^3] > **重要提示**: > - 度量值用于动态计算(如 `总销售额 = SUM('表'[金额])`) > - 计算列在数据加载时静态生成(占用存储空间) > - 所有 DAX 公式需以等号 `=` 开头 ### 性能优化建议 - 优先使用度量值而非计算列 - 避免在循环函数中使用 `CALCULATE` - 复杂公式分步创建中间度量值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱知菜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值