[]
        
在线Demo 免费试用
(Showing Draft Content)

CALCULATE

1. 概述

1.1 功能概述

Wyn 分析表达式提供CALCULATE函数,在已修改的筛选器上下文中计算表达式。

2. 表达式介绍

2.1 语法

  1. 分析表达式语法如下:

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

2.2 参数

  1. 表达式参数说明:

    参数

    定义

    expression

    要进行求值的表达式。

    filter1, filter2,…

    (可选)定义筛选器或筛选器调整函数的布尔表达式或表表达式。

  • 说明: 用作第一个参数的表达式与度量基本相同,第一个参数可以是计算表达式。

  • 筛选器可以是:

    • 布尔筛选表达式

    • 表筛选表达式

    • 筛选器调整函数

  • 当有多个筛选表达式时,可以使用 AND (&&) 逻辑运算符对它们进行计算,这意味着所有条件都必须为 TRUE。

    1) 布尔筛选表达式示例

    CALCULATE (
        SUM ( Sales[Sales Amount] ),
        'Sales'[OrderDateKey] > 1 && 'Sales'[OrderDateKey] <100
    )

    2)表筛选表达式示例

    表表达式筛选器将表对象应用为筛选器。 它可以是对模型表的引用,但更有可能是返回表对象的函数。

    CALCULATE (
        SUM ( Sales[Sales Amount] ),
        Filter('Sales','Sales'[OrderDateKey] > 1 && 'Sales'[OrderDateKey] <100)
    )

    3)布尔过滤器和表过滤器之间的区别。

    类型

    描述

    布尔筛选表达式

    此过滤器作为 where 子句,添加在连接表之后。

    表筛选表达式

    此过滤器作为表将进行内部连接。

    4)筛选器调整函数

    通过筛选器调整函数,不仅仅可以添加筛选器。 它们还在修改筛选器上下文时为您提供额外的控制。在此版本中,我们仅提供“REMOVEFILTERS”功能。它只能去除不必要的维度。示例如下。

    在计算Sales Amount合计时,忽略维度CustomerName。在实际使用时经常作为分母计算总的销售额。

    CALCULATE (
        SUM ( Sales[Sales Amount] ),
        REMOVEFILTERS('Sale'[CustomerName])
    )

2.3 返回值

  1. 返回表达式的计算结果。

2.4 示例

  1. 如下表达式,计算满足三个筛选条件时的Sales Amount 合计。

    CALCULATE (
        SUMX ('Sales', Sales[Sales Amount] ),
        'Sales'[OrderKey] > 20 && 'Sales'[OrderKey] <1010,
        Filter('Sales','Sales'[OrderDateKey] > 1 && 'Sales'[OrderDateKey] <100),
        REMOVEFILTERS('Sale'[CustomerName])
    )

2.5 备注

  1. 所有的过滤表达式都会作用于第一个参数的内表。这意味着 CALCULATE 函数中的过滤器表达式是一个预过滤器。