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
Powerbi 同比差异计算错误“;“较早/最早”;指先前的行上下文,该行上下文不';不存在_Powerbi_Dax_Powerbi Desktop - Fatal编程技术网

Powerbi 同比差异计算错误“;“较早/最早”;指先前的行上下文,该行上下文不';不存在

Powerbi 同比差异计算错误“;“较早/最早”;指先前的行上下文,该行上下文不';不存在,powerbi,dax,powerbi-desktop,Powerbi,Dax,Powerbi Desktop,在尝试计算年与年的差异时(现在有两天未成功),我收到以下错误消息 早期/早期指的是不存在的早期行上下文 在一个不同的SO问题中,有一种不同的方法给了我以下错误: 调用函数“SAMEPERIODLASTYEAR”时指定的列不是日期类型。这是不受支持的 虽然我知道这些是什么意思,但我不知道如何修复它们。这是我的桌子 这就是我所期望的结果 我试着在Power BI社区发布这个问题,但还没有得到答案 实际数据样本: 1)创建年和年差异列(计算列) 2) 创建差异(度量) 差异= Var curren

在尝试计算年与年的差异时(现在有两天未成功),我收到以下错误消息

早期/早期指的是不存在的早期行上下文

在一个不同的SO问题中,有一种不同的方法给了我以下错误:

调用函数“SAMEPERIODLASTYEAR”时指定的列不是日期类型。这是不受支持的

虽然我知道这些是什么意思,但我不知道如何修复它们。这是我的桌子

这就是我所期望的结果

我试着在Power BI社区发布这个问题,但还没有得到答案

实际数据样本:

1)创建年和年差异列(计算列)

2) 创建差异(度量)

差异=
Var current_YearDifference=所选值(表1[年度差异])
Var Current_PrincipalBalance=计算(总和(表1[本金余额]),筛选(全部(表1),表1[年差]=(本年差)))
Var Previous_PrincipalBalance=计算(总和(表1[本金余额]),筛选(全部(表1),表1[年差]=(当前_年差-1)))
返回if(当前年差异0,(当前原则平衡-上一原则平衡),0)
3) 最终创建了百分比(度量)方面的差异

百分比差异=
Var current_YearDifference=所选值(表1[年度差异])
Var Current_PrincipalBalance=计算(总和(表1[本金余额]),筛选(全部(表1),表1[年差]=(本年差)))
Var Previous_PrincipalBalance=计算(总和(表1[本金余额]),筛选(全部(表1),表1[年差]=(当前_年差-1)))
返回if(当前年差异0,((当前主平衡-上一主平衡)/上一主平衡),0)
我的最终输出

本金余额在“输出表”的“值”窗格中选择了“总和”功能,其中,当年度为时,不进行汇总

我的最佳实践
  • 创建复杂度量时始终使用VAR来简化 公式
  • 然后只返回度量值的一部分,以检查输出是否如预期的那样
  • 如果有帮助或没有帮助,请告诉我。

    1)创建了年和年差异列(计算列)

    2) 创建差异(度量)

    差异=
    Var current_YearDifference=所选值(表1[年度差异])
    Var Current_PrincipalBalance=计算(总和(表1[本金余额]),筛选(全部(表1),表1[年差]=(本年差)))
    Var Previous_PrincipalBalance=计算(总和(表1[本金余额]),筛选(全部(表1),表1[年差]=(当前_年差-1)))
    返回if(当前年差异0,(当前原则平衡-上一原则平衡),0)
    
    3) 最终创建了百分比(度量)方面的差异

    百分比差异=
    Var current_YearDifference=所选值(表1[年度差异])
    Var Current_PrincipalBalance=计算(总和(表1[本金余额]),筛选(全部(表1),表1[年差]=(本年差)))
    Var Previous_PrincipalBalance=计算(总和(表1[本金余额]),筛选(全部(表1),表1[年差]=(当前_年差-1)))
    返回if(当前年差异0,((当前主平衡-上一主平衡)/上一主平衡),0)
    
    我的最终输出

    本金余额在“输出表”的“值”窗格中选择了“总和”功能,其中,当年度为时,不进行汇总

    我的最佳实践
  • 创建复杂度量时始终使用VAR来简化 公式
  • 然后只返回度量值的一部分,以检查输出是否如预期的那样

  • 如果有帮助或没有帮助,请告诉我。

    请发布一个数据示例。@Sid29,我不明白。我需要计算每年本金余额的差异。这些图像显示了数据。所以这些主要余额不是相互聚合的,这就是实际数据?如果是这样,那就好了。让我试试看。是的,这些是单个日期的集合。我可以上传实际数据的图片,给我一秒钟。哈哈。。。我会根据您的数据更新相应的答案。请发布您的数据示例。@Sid29,我不明白。我需要计算每年本金余额的差异。这些图像显示了数据。所以这些主要余额不是相互聚合的,这就是实际数据?如果是这样,那就好了。让我试试看。是的,这些是单个日期的集合。我可以上传实际数据的图片,给我一秒钟。哈哈。。。我将根据您的数据相应地更新答案。工作完美,是的,我看到本金余额已汇总,但日期未汇总。工作完美,是的,我看到本金余额已汇总,但日期未汇总。
    YOY Variance = var PreviousYearPrinBal = CALCULATE(SUM(Deals[Principal Balance]),FILTER(ALL(Deals[Close Date].[Year]),Deals[Close Date].[Year] = EARLIER(Deals[Close Date].[Year])))
    return
    if(PreviousYearPrinBal = BLANK(), BLANK(), Deals[PrincipalBalance] - PreviousYearPrinBal)
    
    yoy = CALCULATE([PrincipalBalance], SAMEPERIODLASTYEAR(Deals[Close Date].[Year]))
    
    Year = YEAR(Table1[Date])
    Year Difference = Table1[Year] - Min(Table1[Year])
    
    Variance = 
    
       Var current_YearDifference = SELECTEDVALUE(Table1[Year Difference])  
    
       Var Current_PrincipalBalance = CALCULATE(SUM(Table1[Principal Balance]),FILTER(ALL(Table1), Table1[Year Difference] = (current_YearDifference)))                                            
    
       Var Previous_PrincipalBalance = CALCULATE(SUM(Table1[Principal Balance]),FILTER(ALL(Table1), Table1[Year Difference] = (current_YearDifference - 1)))                                  
    
    Return if(current_YearDifference <> 0, (Current_PrincipalBalance - Previous_PrincipalBalance), 0)
    
    Variance in terms of Percentage = 
    
       Var current_YearDifference = SELECTEDVALUE(Table1[Year Difference])  
    
       Var Current_PrincipalBalance = CALCULATE(SUM(Table1[Principal Balance]),FILTER(ALL(Table1), Table1[Year Difference] = (current_YearDifference)))                                 
    
       Var Previous_PrincipalBalance = CALCULATE(SUM(Table1[Principal Balance]),FILTER(ALL(Table1), Table1[Year Difference] = (current_YearDifference - 1)))                                  
    
    Return if(current_YearDifference <> 0, ((Current_PrincipalBalance - Previous_PrincipalBalance) / Previous_PrincipalBalance), 0)