【问题标题】:DAX Sum of Average to Rank平均排名的 DAX 总和
【发布时间】:2018-09-09 16:08:51
【问题描述】:

我有一个数据透视表,可以按人从 powerpivot 中提取速率。费率是一个计算字段,而不是一列,我需要将总计显示为费率的总和,而不是平均值。这纯粹是为了排名目的,以显示谁的总体比率最高到最低。这就是我想要的字段的样子:

Person Jan-2018 Feb-2018 Mar-2018 GrandTotal [DesiredField] A 80% 71% 82% 77.6% 233% B 76% [blank] 85% 80.5% 161% C 82% 85% 79% 82% 246%

所以人 C 将位于顶部,然后是 A,然后是 B。由于 OLAP 限制,我无法创建计算字段,并且“汇总值依据”字段显示为灰色。如果有更好的解决方法,请告诉我。

【问题讨论】:

  • 所以您不能向您的 PowerPivot 模型添加任何内容?也许您可以使用数据透视表作为新表的来源。创建一个新工作表并进行一些查找,以创建所需的表并添加所需的计算列。编辑:您要求(标题)提供 DAX 公式。为什么,因为您无法创建计算列?
  • @TJ_ 是的,理想情况下,我可以在 powerpivot 中使用 DAX 公式来解决此问题。由于数据会定期刷新并且行数会发生变化,因此我认为最好将其保留为数据透视表。我拉的速率是一个计算量度,因此在 powerpivot 中创建另一列并不能解决问题。我尝试了 SUM([calculated measure]) 但导致错误,因为 SUM 只接受列引用作为参数。
  • 好的,清楚。抱歉,我错过了字段和列的区别。现在我明白你的问题了。您能否描述计算当前 [Rate] 所需的数据或显示线条?也许那时我们可以创建一个计算字段来生成您想要的数字。
  • @TJ_ 该比率适用于整个人口,基于一列,其值为 1 或 0。rate = sum([column])/count[column])。因此,随着时间的推移,一个人可能会有多行,其中 [column] = 1 如果完整,否则为 0。描述够了吗?
  • 谢谢。是的。根据您的描述,我下面的答案似乎有效。希望您能理解它,并且它也适用于您的情况。

标签: excel dax powerpivot rank rate


【解决方案1】:

由于没有给出数据模型,我假设您有一个度量(计算字段)、一些人员和一个带有“月-年”列的日期维度。

您可以尝试使用 SUMX 函数,它会迭代给定的值表。在这种情况下,您需要对每个“月-年”计算出的 [Rate] 相加。

例子:

SumRatePerMonth :=
SUMX(
     VALUES('DimDate'[Year-Month]),
     [Rate]
)

该公式遍历 DimDate 表*中的 [Month-Year] 列,计算每个 [Month-Year] 的 [Rate],并将其相加。

注意:就像我说的,我假设您有某种日期维度,您可以从中提取月-年列。如果我的假设是错误的,请向我们提供您的数据模型的示例或屏幕截图。

【讨论】:

  • 缺少 VALUES 函数 - 甚至不知道它存在。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-09
  • 2021-10-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多