DAX SUMMARIZECOLUMNS函数 - 这个函数有什么用处?

4
根据DAX指南(https://dax.guide/summarizecolumns/):
SUMMARIZECOLUMNS不支持在上下文转换中进行评估。这使得它在大多数度量中无用。
该函数非常强大,是SUMMARIZE函数的一个不错的继承者。但是,我有点好奇为什么DAX团队会引入这样一个函数,因为它只能在非常有限的情况下使用。我想如果你想要构建一个计算表,它会很有用。除此之外,我认为你基本上被迫使用SUMMARIZE。我有遗漏什么吗?
2个回答

4
根据Marco Russo所说,这个限制已经被移除,现在可以在度量值中有效地使用SUMMARIZECOLUMNS,以及静态计算表。
如果你想从SUMMARIZE转换到SUMMARIZECOLUMNS,仍需要注意一些事项,但是Marco在这篇文章中进行了讲解。
编辑:经过一些测试,发现它可以用于响应外部筛选上下文(例如切片器或页面筛选器)的度量,但无法用于可视化产生的内部筛选上下文(例如矩阵中的行/列),因此限制只被部分移除。

1
我不确定这是否正确。我从未能够在度量中使用SUMMARIZECOLUMNS而不出错。您引用的文章是2017年的。我帖子中的链接最近更新。它仍然包含有关其有限使用的免责声明。 - Randy Minder
1
看起来你是正确的。它只解决了一部分。请看我的编辑。 - Alexis Olson
在您的编辑中,我发现您对“外部过滤器”和“内部过滤器”的使用有些混淆。我一直认为,在 DAX 之外放置的任何过滤器上下文都被认为是“外部”或“外部”过滤器。在 DAX 中应用的任何过滤器,比如在 CALCULATE 中,都被认为是“内部”过滤器。我错了吗? - Randy Minder
这可能不是标准用法,但我试图区分可视化创建的修改过的筛选器上下文和适用于可视化的筛选器上下文。在这种情况下,是可视化内部/外部而不是度量内部/外部。 - Alexis Olson
也不会接受来自桥接表之外的上下文转换... - StelioK

4

SUMMARIZECOLUMNS 在查询中非常有用。我相信这个函数是应Power BI团队的要求引入的。几乎每个PBI视觉元素都会生成一个查询,其中大部分工作都在 SUMMARIZECOLUMNS 中完成。这些查询通常采用以下一般格式:

DEFINE
VAR <filter1> = ...
VAR <filter2> = ...
...
VAR <filterN> = ...
EVALUATE
SUMMARIZECOLUMNS
    <grouping columns from visual>,
    <filter1>,
    <filter2>,
    ...,
    <filterN>,
    <measures in visual>

在这种模式下,来自其他可视化图形的所有交叉筛选器和报表中的所有筛选器都被捕获到 filter1filter2、...、filterN 中。这是一种非常容易通过编程生成的模式。
此外,这种模式通常用于撰写查询,因为一个函数就能实现分组、选择/过滤和度量评估。
有时候我们会陷入局限性思维中,认为DAX仅是度量公式语言,但它其实是完整的关系型查询语言。

我认为您没有理解我的帖子重点。该函数可能在底层被大量使用。但是,对于PBI / DAX开发人员来说,如果您想将其与从表格或矩阵传递的当前筛选器上下文一起使用,或者正在发生上下文转换,则其应用范围目前非常有限。 - Randy Minder
我是一名PBI/DAX开发人员,每天都会使用SUMMARIZECOLUMNS,并且正如我在回答中提到的那样,它的确可以用于编写查询。你说得没错,在度量的上下文中它并不实用,但是你的问题是“这个函数有什么用处?”我已经给出了答案。如果你想要更具体的答案,请编辑你的问题或者提出一个新的问题。 - greggyb
好的,谢谢您的回复。 - Randy Minder

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接