Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/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
Dax 自定义列添加到矩阵幂bi,如diff、total、avg_Dax_Powerbi Desktop - Fatal编程技术网

Dax 自定义列添加到矩阵幂bi,如diff、total、avg

Dax 自定义列添加到矩阵幂bi,如diff、total、avg,dax,powerbi-desktop,Dax,Powerbi Desktop,我有一个如下的输入 Name WK pirce AA 1 10 BB 2 20 CC 3 30 DD 4 20 AA 4 10 BB 4 20 我想计算一行中的周数和上周的差值&过去3周的值 因此,我创建了一个度量,如下所示 Total = SUM('Table'[Price]) 上周的差价 Difference = var LWK=CALCULATE(MAX('Table'[WK]),all('Table')) Var BLWK=C

我有一个如下的输入

Name WK pirce 
AA   1   10
BB   2   20
CC   3   30
DD   4   20
AA   4   10
BB   4   20
我想计算一行中的周数和上周的差值&过去3周的值

因此,我创建了一个度量,如下所示

   Total = SUM('Table'[Price])
上周的差价

Difference = 
var LWK=CALCULATE(MAX('Table'[WK]),all('Table'))
Var BLWK=CALCULATE(MAX('Table'[WK])-1,all('Table'))
var D1=CALCULATE([Total],'Table'[WK]=LWK)
var D2=CALCULATE([Total],'Table'[WK]=BLWK)
return
IF(ISINSCOPE('Table'[WK]),SUM('Table'[Price]),D1-D2)
        LWK_Avg = 
var Lwk=CALCULATE(MAX('Table'[WK]),ALL('Table'))
var Ex_LWk=CALCULATE(MAX('Table'[WK])-1,ALL('Table')) // finding before last week 
var BLwk=CALCULATE(MAX('Table'[WK])-3,ALL('Table')) // finding 3 weeks before ( excluding last week)
var Avg1=CALCULATE([Total]/3,'Table'[WK]>=BLwk&& 'Table'[WK]<=Ex_LWk)
var D1=CALCULATE([Total],'Table'[WK]=Lwk)

return
IF(ISINSCOPE('Table'[WK]),BLANK(),D1-Avg1)
  
对于平均值-过去3周的差异

Difference = 
var LWK=CALCULATE(MAX('Table'[WK]),all('Table'))
Var BLWK=CALCULATE(MAX('Table'[WK])-1,all('Table'))
var D1=CALCULATE([Total],'Table'[WK]=LWK)
var D2=CALCULATE([Total],'Table'[WK]=BLWK)
return
IF(ISINSCOPE('Table'[WK]),SUM('Table'[Price]),D1-D2)
        LWK_Avg = 
var Lwk=CALCULATE(MAX('Table'[WK]),ALL('Table'))
var Ex_LWk=CALCULATE(MAX('Table'[WK])-1,ALL('Table')) // finding before last week 
var BLwk=CALCULATE(MAX('Table'[WK])-3,ALL('Table')) // finding 3 weeks before ( excluding last week)
var Avg1=CALCULATE([Total]/3,'Table'[WK]>=BLwk&& 'Table'[WK]<=Ex_LWk)
var D1=CALCULATE([Total],'Table'[WK]=Lwk)

return
IF(ISINSCOPE('Table'[WK]),BLANK(),D1-Avg1)
  
LWK\u平均值=
var Lwk=计算(最大值('Table'[WK]),全部('Table'))
var Ex_LWk=CALCULATE(MAX('Table'[WK])-1,ALL('Table')//上周之前的查找
var BLwk=CALCULATE(MAX('Table'[WK])-3,ALL('Table')//查找前3周(不包括上周)

var Avg1=CALCULATE([Total]/3,'Table'[WK]>=BLwk&&'Table'[WK]在这种情况下,使用power query editor将比创建大量度量更容易。请参见以下步骤(因为很难解释我截图的每个步骤,以便您可以轻松地遵循)

第一步:

  • 转到编辑查询/转换数据并执行以下操作:选择Wk列并单击轴列,如下所示:
  • 将空值替换为零
  • 创建一个自定义列,如下所示
  • 最后用下面的计算创建一个新列

  • 希望这有帮助,如果有任何困惑,请告诉我。

    我已经尝试了上述解决方案。是的,它可以工作……但它应该动态更改。假设添加了第5周。它应该需要最后两周的差异,另一列是上周-过去3周的差异