1

我是 Power BI 的新手,我正在研究这项措施以显示特定时间段的累积总和。

案例和我想要的:

我有一个日历表 [DateKey] 和主数据表 [Data],它们具有基于列日期的关系。我需要显示折线图和聚集柱形图和时间切片器的视觉效果,其中基于切片器的累积收入总和。

例如:我有 7 月的收入表,我将 DateKey[Month] 列作为切片器,当我选择 7 月时,视觉将显示 7 月(从 7 月 1 日至 31 日)的收入累计总和当我选择 8 月时,视觉效果将显示 8 月的累积总收入(从 8 月 1 日到 31 日)

我尝试了什么:我使用了以下 DAX

Cumulative Sum Rev = CALCULATE(
SUM(Data[Revenue]),
FILTER(
ALL(Data),
Data[Date]<=MAX(Data[Date])
)
)

实际结果:它确实创建了一个累积总和线,但对于 7 月来说还不错。如果我在切片器中选择 8 月,它将是从 7 月到 8 月的累积总和。我期望的是累计金额将从 8 月开始,而不是从 7 月开始。

我尝试了另一种解决方案,它使用 ALLEXCEPT 而不是 ALL,但它似乎不适用于日期列(您可以在 pbix 文件中看到我的措施已经有了它,但要过滤另一列 [Lead_type],它非常适用于另一个切片机)

Cumulative Sum Rev = CALCULATE(
SUM(Data[Revenue]),
FILTER(
ALLEXCEPT(Data,Data[Lead_type]),
Data[Date]<=MAX(Data[Date])
)
)

请帮助告诉我我错在哪里。

这是我的 pbix 文件的链接,它包括我的视觉效果和我的测量值: https ://1drv.ms/u/s!As4H0zrXywmbhaVFDprZ6RJmFUMbbg?e=l4Wxe5

4

1 回答 1

0

您所追求的是“本月至今”的衡量标准。这是 DAX 中的内置时间智能功能 - 您也可以使用正确的变量和 DAX 语法制作自己的版本 - 这具有更大的灵活性。但是,对于这种情况,这应该可以解决问题:

首先添加一个对收入列求和的度量。拥有这些简单的聚合度量总是很聪明 - 当您在其他度量中使用这些度量时,它们会CALCULATE自动包装在一个语句中,这样可以避免一些混乱:

Revenue Amount := SUM ( Data[Revenue] )

然后添加一个TOTALMTD度量,它将第一个度量作为第一个参数,将您的日期列作为第二个参数。注意:日期列在您的DateKey表中 - 不要为此使用事实表中的日期列:

Cumulative sum = 
TOTALMTD (
    [Revenue Amount] , 
    DateKey[Date]
)

ADDCOLUMNS您还应该阅读一些有关日历表的内容,以及使用创建表和在计算表顶部添加单个计算列之间的区别。我将从这里开始:https ://www.sqlbi.com/articles/creating-a-simple-date-table-in-dax/

于 2021-08-06T07:26:55.400 回答