我需要解决 DAX 遇到的问题,但我找不到正确的查询。 给您一些背景信息:我的数据中有不同的区域,其值包括 T100、T200、T300 等。它们可以在表 Geography 的 RegionLevel2 列中找到。然后,在同一个表中,有一个名为 TerrLevel1 的列,其中包含领土。每个地区都有多个领地。例如,区域 T100 的领土为 T101、T102、T103 等。对于每个地区,我根据其各自的销售额计算了一个分数。这是一个名为 Score1 的衡量标准,运行良好。现在我需要计算各区域的分数。该分数基于某个地区的平均销售额。因此,对于 T100,其分数将是 T101、T102、T103 等的 Score1 的平均值。我已经尝试过这些 DAX 公式:
AVERAGEX(Geography, [Score1])
AVERAGEX(all(Geography[TerrLevel1]), [Score1])
AVERAGEX(VALUES(Geography[TerrLevel1]), [Score1])
CALCULATE( AVERAGEX(Geography, [Score1]),ALL(Geography[TerrLevel1]))
但它没有给我正确的结果。我想我需要以某种方式进行过滤,将正确的领土与其所在区域分组,但我不知道如何进行。
我将不胜感激任何形式的帮助。谢谢!
如果您没有地域背景,您原来的衡量标准(我将其命名为“平均”)应该有效。 现在假设您有一个区域的上下文:
如果区域上下文是明确的,这应该足够了:
=IF(HASONEVALUE(Geography[RegionLevel2]),
CALCULATE([Avg],
ALL(Geography[TerrLevel1])),
BLANK())
但我建议您考虑到区域上下文可能并不总是明确的,因此使用以下(更安全的)措施:
=IF(HASONEVALUE(Geography[RegionLevel2]),
CALCULATE([Avg],
Geography[RegionLevel2] = VALUES(Geography[RegionLevel2]),
ALL(Geography[TerrLevel1])),
BLANK())
此措施的缺点是,如果多个区域属于上下文(通常为总计或小计),则您将得不到任何值(空白),但我不知道您的确切需求。