Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Row 将行与下一行值相加,并在其他列中获取所选日期的下一个值_Row_Powerbi_Dax_Next_Calculation - Fatal编程技术网

Row 将行与下一行值相加,并在其他列中获取所选日期的下一个值

Row 将行与下一行值相加,并在其他列中获取所选日期的下一个值,row,powerbi,dax,next,calculation,Row,Powerbi,Dax,Next,Calculation,假设我有以下数据: 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-

假设我有以下数据:

         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求和,并获取列Earn Cum的下一个值52106。。结果应该是:

1-May    7,498    52,106
另一个示例:如果选择的日期是4月30日,则结果必须是:

30-Apr  13,173    50,699    

我正绞尽脑汁试图使用Power BI中的一个度量值来实现这一点。

这将有助于访问日期智能,因此如果您还没有日期表,请创建一个日期表。下面的dax设置了一个小表,它几乎不包含示例中的示例数据

Date = CALENDAR(Date(2019,4,10),Date(2019,5,5))
在表中的日期和新的日期维度之间创建关系。使用日期维度向视觉效果添加切片器

我们可以使用IF和isfilter来检查是否正在进行过滤。如果我们不在
Date
上进行筛选,则会得到正常的表行为。如果是,我们将看到修改后的结果

Earn _ Alt = 
var tomorrow = CALCULATE (
    SUM(Table1[Earn]),
    dateadd('Table1'[Date], 1, DAY)
 )

return Sum(Table1[Earn]) + IF(ISFILTERED`('Date'[Date]),tomorrow,0)`

结果:

-未过滤-

-过滤-

它将有助于访问日期智能,因此,如果您还没有日期表,请创建一个日期表。下面的dax设置了一个小表,它几乎不包含示例中的示例数据

Date = CALENDAR(Date(2019,4,10),Date(2019,5,5))
在表中的日期和新的日期维度之间创建关系。使用日期维度向视觉效果添加切片器

我们可以使用IF和isfilter来检查是否正在进行过滤。如果我们不在
Date
上进行筛选,则会得到正常的表行为。如果是,我们将看到修改后的结果

Earn _ Alt = 
var tomorrow = CALCULATE (
    SUM(Table1[Earn]),
    dateadd('Table1'[Date], 1, DAY)
 )

return Sum(Table1[Earn]) + IF(ISFILTERED`('Date'[Date]),tomorrow,0)`

结果:

-未过滤-

-过滤-

我将您的表格称为“数据”

创建一个度量:

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 )
结果:

注意:代码假定您的日期是连续的(没有间隔)。如果他们有差距,事情就更复杂了

我将您的表称为“数据”

创建一个度量:

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 )
结果:


注意:代码假定您的日期是连续的(没有间隔)。如果他们有差距,事情就更复杂了

问题是什么?你是想写一些衡量标准吗?是的。。。我想用一种方法来衡量,问题是什么?你是想写一些衡量标准吗?是的。。。我想把这个放在一个尺度上。太棒了!你能在这里说明一下吗?令人惊叹的!你能在这里说明一下吗?谢谢你的回答。。。我试试看。。。你能不能也在这里说明一下?stackoverflow.com/q/56658634/114029RADO。。。这个问题也适用于该样本
.pbix
我在另一个问题中分享了。所有过滤器均已应用。我添加了
Next Earn
measure,它将挣值移到上面一行。4月14日的值为48,该值被移动到4月13日,并在一定程度上改变了所有值。它应该只求最后一个值的和,同时将值保留在各自的日期中。不是让用户选择切割日期,而是在.pbix中的新表中设置该日期。让我们称之为
Cut date
@LenielMaccaferri-我很难理解您的评论我将上传一个不同的testing.pbix,以便您可以使用它。这里是:查看它是否按预期工作。我将更新问题并添加打印屏幕。谢谢您的回答。。。我试试看。。。你能不能也在这里说明一下?stackoverflow.com/q/56658634/114029RADO。。。这个问题也适用于该样本
.pbix
我在另一个问题中分享了。所有过滤器均已应用。我添加了
Next Earn
measure,它将挣值移到上面一行。4月14日的值为48,该值被移动到4月13日,并在一定程度上改变了所有值。它应该只求最后一个值的和,同时将值保留在各自的日期中。不是让用户选择切割日期,而是在.pbix中的新表中设置该日期。让我们称之为
Cut date
@LenielMaccaferri-我很难理解您的评论我将上传一个不同的testing.pbix,以便您可以使用它。这里是:查看它是否按预期工作。我将更新问题并添加打印屏幕。