COLLAPSE
检索与当前上下文相比级别更高的上下文。 如果提供了表达式,则会在新上下文中返回其值,从而允许在层次结构中进行导航并在更详细的级别进行计算。
语法
同时执行导航和计算的语法。
COLLAPSE ( <expression>, <axis>[, N] )
COLLAPSE ( <expression>, <column>[, <column>] ... )
仅执行导航的语法。
COLLAPSE ( <axis>[, N] )
COLLAPSE ( <column>[, <column>] ... )
参数
术语 | 定义 |
---|---|
表达式 | 要在新上下文中评估的表达式。 |
轴 | 一个轴引用。 |
列 | 数据网格中的列。 |
N | (可选)要折叠的级别数。 如果省略,则默认值为 1。 |
返回值
对于同时执行导航和计算的版本,在导航到新级别后,此函数将在新上下文中返回表达式的值。 对于仅执行导航的版本,此函数通过导航到新级别来修改评估上下文。
注解
- 此函数只能在视觉计算中使用。
- 此函数的仅导航版本可在 CALCULATE 函数内使用。
- 层次结构的级别由轴引用所引用的每个轴中的所有列确定。
- 在已指定列的情况下,轴的确定方式为:加入第一次遇到各列时各列对应的轴。
- 当指定了 N 时,此函数将在层次结构中从当前级别向下导航 N 个级别或导航到顶部级别(以先到者为准)。
- 当指定了多个列时,此函数将在层次结构中向上导航,直到到达不存在任何指定列的第一个级别。
- 导航从数据矩阵中的当前单元格开始,沿层次结构向上升序排列。 如果某个指定列所处的级别低于当前单元格,则会忽略该列。
示例
如果给定了一个表,该表汇总了具有总计、年度、季度和月份级别的层次结构的总销售额,则下面的 DAX 计算分别在父级别、祖父级别和年份或自我级别计算[销售额]的最大值。
ParentValue = COLLAPSE([SalesAmount], ROWS)
GrandParentValue = COLLAPSE([SalesAmount], ROWS, 2)
QuarterOrSelfValue = COLLAPSE([SalesAmount], [Month])
下面的屏幕截图显示了具有三个可视化计算的矩阵。