使用 CALCULATE 函数
已完成
10 分钟
DAX 中的 CALCULATE 函数是数据分析员可以学习的最重要的函数之一。 函数名称没有充分描述它的用途。
CALCULATE 函数是一种创建 DAX 度量值的方法,创建的度量值可替代上下文中用于表示正确结果的特定部分。
例如,若要创建一个度量值来始终计算 2015 年的总销售额,而不管 Power BI 的其他任何视觉对象中选择的是哪一年,则可以创建如以下示例所示的度量值:
Total Sales for 2015 = CALCULATE(SUM('Sales OrderDetails'[Total Price]), YEAR('Sales OrderDetails'[orderdate]) = 2015)
我们注意到,此度量值命名为“Total Sales for 2015”。 使用 CALCULATE 函数替代上下文时,不妨以一种准确描述如何替代的方式来命名度量值。 在此示例中,CALCULATE 函数聚合了“Total Price”列,就像你在上一度量值中所做的一样。 不过,并不是在使用筛选器上下文指示它执行任何操作的同时对整个数据集执行运算,而是替代 2015 年的筛选器上下文。 无论选择哪一年,始终都会获得 2015 年的总销售额,其他所有筛选器仍适用。 后续示例展示了此概念的实际应用。
当这两个度量值同时添加到之前的视觉对象中时,它们如下面的屏幕截图所示。
如上面的屏幕截图所示,总销售额仍为 135 万美元,而 2015 年的总销售额为 66 万美元。
如果像前面一样将另一个视觉对象添加到报表中,然后选中“2015 年”,结果如下图所示。
我们注意到,两个度量值的销售额现在是相等的。 若要按其他任何条件(包括区域、员工或产品)进行筛选,筛选器上下文仍会同时应用于两个度量值。 只有年份筛选器不应用于相应的度量值。