假设我有此数据:
Earn Earn Cum.
13-Apr - -
14-Apr 48 48
15-Apr 257 305
16-Apr 518 823
17-Apr 489 1,312
18-Apr 837 2,149
19-Apr 1,005 3,154
20-Apr 1,021 4,175
21-Apr 1,463 5,638
22-Apr 2,630 8,268
23-Apr 2,993 11,261
24-Apr 3,354 14,615
25-Apr 4,332 18,947
26-Apr 4,885 23,832
27-Apr 4,514 28,346
28-Apr 4,356 32,702
29-Apr 4,824 37,526
30-Apr 7,082 44,608
1-May 6,091 50,699
2-May 1,407 52,106
例如,当在下拉式切片器中选择日期时:1-May我想对 Earn 列的行1-May与下一行2-May求和赚取收入列的下一个值52,106。结果应该是:
1-May 7,498 52,106
另一个示例:如果所选日期为4月30日,则结果必须为:
30-Apr 13,173 50,699
我正在努力尝试使用Power BI中的一种方法来做到这一点。
答案 0 :(得分:1)
访问日期智能将有帮助,因此如果您还没有日期表,请创建一个日期表。以下dax设置了一个小表,该表仅涵盖了示例中的示例数据。
Date = CALENDAR(Date(2019,4,10),Date(2019,5,5))
在表中的日期和新的日期维度之间创建一个关系。使用“日期”维度将切片器添加到视觉效果。
我们可以使用IF和ISFILTERED来检查是否正在进行过滤。如果我们不在Date
上进行过滤,那么我们将获得正常的表行为。如果是这样,我们将看到修改后的结果。
Earn _ Alt =
var tomorrow = CALCULATE (
SUM(Table1[Earn]),
dateadd('Table1'[Date], 1, DAY)
)
return Sum(Table1[Earn]) + IF(ISFILTERED`('Date'[Date]),tomorrow,0)`
和
Earn Cum. _ Alt = IF(ISFILTERED('Date'[Date]),
CALCULATE (
SUM(Table1[Earn Cum.]),
dateadd('Table1'[Date], 1, DAY)
),
SUM(Table1[Earn Cum.]))
结果:
答案 1 :(得分:1)
我将您的表称为“数据”。
创建度量:
Next Earn =
VAR Current_Date = MAX ( Data[Date] )
VAR Next_Date = Current_Date + 1
RETURN
CALCULATE (
SUM ( Data[Earn] ),
Data[Date] = Current_Date || Data[Date] = Next_Date
)
创建另一个度量:
Next Cum Earn =
VAR Current_Date = MAX ( Data[Date] )
VAR Next_Date = Current_Date + 1
RETURN
CALCULATE ( SUM ( Data[Earn Cum] ), Data[Date] = Next_Date )
结果:
注意:该代码假定您的日期是连续的(没有间隔)。如果它们之间存在差距,则情况会更加复杂。