DAX Measure: IF 所有用户的总和 = Max THEN 单个用户的返回值
Posted
技术标签:
【中文标题】DAX Measure: IF 所有用户的总和 = Max THEN 单个用户的返回值【英文标题】:DAX Measure: IF sum of all users = Max THEN return value of individual user 【发布时间】:2018-02-15 14:54:14 【问题描述】:大家,
我是 DAX 度量的新手,我正试图让我的度量具有以下逻辑:
When sum of all users = Max, THEN return value of individual user
数据模型具有以下列:CustomerID \ Usage \ Interval (DATETIME)。让我绊倒的是 DATETIME 以 15 分钟为增量。我有大约 700 个唯一的 CustomerID,我需要能够在所有 CustomerID 的 MAXSUM 期间返回每个 CustomerID 的使用情况。
我不确定这是否是一个 IF-THEN 语句,或者我是否需要使用时间函数。我正在 Power Pivot 中编写此 DAX 度量以发送到 Excel 中的数据透视表。
提前致谢,
【问题讨论】:
您的表格是什么样的,Max 是如何计算的? 数据模型有以下列: 数据模型具有以下列:CustomerID \ Usage \ Interval (DATETIME)。让我绊倒的是 DATETIME 以 15 分钟为增量。我有大约 700 个唯一的 CustomerID,我需要能够找到所有 700 个 CustomerID USAGE 的总和的最大 DATETIME,然后我需要弄清楚每个 CustomerID 在该 DATETIME 的单独 USAGE 是什么。 好的。您可能应该将该信息编辑到您的帖子中。 【参考方案1】:这可能不是最简单的解决方案,但它适用于我(我已将表命名为 Load
)。
CustomerUsage =
VAR Summarized = CALCULATETABLE(
SUMMARIZE(Load, Load[Interval], "TotalUsage", SUM(Load[Usage])),
ALLSELECTED(Load))
VAR MaxUsage = MAXX(Summarized, [TotalUsage])
VAR MaxInterval = MAXX(FILTER(Summarized, [TotalUsage] = MaxUsage), [Interval])
RETURN CALCULATE(SUM(Load[Usage]), Load[Interval] = MaxInterval)
首先,您生成一个表格,通过对所有选定用户求和来找到每个时间间隔的总使用量。
MaxUsage
只是所有区间中最大的TotalUsage
。
MaxInterval
是TotalUsage = MaxUsage
的间隔。
然后我们可以找到客户的Usage
,在最大使用时间间隔内。
【讨论】:
非常感谢!工作得很好。我仍在阅读代码以完全了解它的工作原理。我越读越明白。以上是关于DAX Measure: IF 所有用户的总和 = Max THEN 单个用户的返回值的主要内容,如果未能解决你的问题,请参考以下文章