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 在SSAS表格的DAX度量中使用SUMX时,如何从用户选择中删除行上下文?_Powerbi_Dax_Ssas Tabular - Fatal编程技术网

Powerbi 在SSAS表格的DAX度量中使用SUMX时,如何从用户选择中删除行上下文?

Powerbi 在SSAS表格的DAX度量中使用SUMX时,如何从用户选择中删除行上下文?,powerbi,dax,ssas-tabular,Powerbi,Dax,Ssas Tabular,如何从SUMX中删除行上下文,使其包含正在迭代的表变量的所有记录 我尝试了这一点,但没有效果(用过滤器包装表格以显示“所有期间日期值”)——这仍然不是我想要的: SUMX(FILTER(varCoverageTableYTD , ALL('Equipment Cost on Rent With Branch'[PeriodDate])
 , DIVIDE([Days on Rent with Branch], [Billable Days with Branch])

如何从SUMX中删除行上下文,使其包含正在迭代的表变量的所有记录

我尝试了这一点,但没有效果(用过滤器包装表格以显示“所有期间日期值”)——这仍然不是我想要的:

SUMX(FILTER(varCoverageTableYTD
     , ALL('Equipment Cost on Rent With Branch'[PeriodDate])

     ,    DIVIDE([Days on Rent with Branch], [Billable Days with Branch]) 
       *
  DIVIDE([Billable Days with Branch], [Total Days with Branch]) 
       * 
'Equipment Cost on Rent With Branch'[EquipmentCostForCORMeasure_CCUR]

     ))
我以前采取了不同的方法。我相信我的问题是一个过滤器上下文,我删除了它。这样做之后,我只能假设是SUMX迭代器继承了行上下文

以下是完整的度量定义。我相信我已经将问题隔离到了SUMX(正如我已经描述的那样)。但是,显示整个定义的代码可能会有好处:

// Convert the user selected period into Begin and End Dates


   VAR varLastDateYTD = LASTDATE(DATESYTD('Calendar'[Calendar Date]))
   VAR varFirstDateYTD = DATE(YEAR(varLastDateYTD), 1, 1)




// Remove the filter context which is coming from the user selection


   VAR varCoverageTableAllDates = CALCULATETABLE('Equipment Cost on Rent With Branch'
                            
                               , ALL('Equipment Cost on Rent With Branch'[PeriodDate])
                              )



// Filter the table to the calculated Begin and End Dates


   VAR varCoverageTableYTD = FILTER(varCoverageTableAllDates
                                     
                             , 'Equipment Cost on Rent With Branch'[PeriodDate] <= varLastDateYTD

                            && 'Equipment Cost on Rent With Branch'[PeriodDate] >= varFirstDateYTD
                              )



// Iterate over the new table, calculating on a per row basis.

// Does SUMX get a row context from the user selection? 
// My result is limited to the user selected period.


   RETURN SUMX(varCoverageTableYTD,
         
, DIVIDE([Days on Rent with Branch], [Billable Days with Branch]) 
        *
  DIVIDE([Billable Days with Branch], [Total Days with Branch]) 
        * 
'Equipment Cost on Rent With Branch'[EquipmentCostForCORMeasure_CCUR]
  
        )
//将用户选择的时段转换为开始和结束日期

VAR varLastDateYTD=LASTDATE(DATESYTD('Calendar'[Calendar Date]))
VAR varFirstDateYTD=日期(年份(varLastDateYTD),1,1)



// 删除来自用户选择的筛选器上下文

VAR varCoverageTableAllDates=CALCULATETABLE('分公司租赁的设备成本'
                            
,全部('与分公司租赁的设备成本'[期间日期])
                              )


//根据计算的开始和结束日期筛选表

VAR varCoverageTableYTD=过滤器(varCoverageTableAllDates
                                     
,“与分公司租赁的设备成本”[PeriodDate]=varFirstDateYTD
                              )


//迭代新表,按每行计算。

//SUMX是否从用户选择中获取行上下文?
//我的结果仅限于用户选择的时段。

返回SUMX(varCoverageTableYTD,

, 除以([分公司租赁天数],[分公司计费天数])
*
  除以([分支机构的计费天数],[分支机构的总天数])
* 
'与分公司租赁的设备成本【公司设备成本】
  
)

你能发布你的数据模型图吗?谢谢。模型相当大。我发布了一张图片,显示了关注的关系。(仅供参考:目前还没有双向过滤器。)可能需要查看[与分行合租天数]、[与分行合租天数]、[与分行合租天数]、[与分行合租天数]的公式measuresEach很简单:Measure=SUM([it's column value]),因此[Days on Rent]=SUM([Coverage Table'[FactDaysOnRent])在这条推理路线上(从度量的上下文转换),我以前曾尝试使用YTD DAX函数对YTD度量进行此操作,这确实带来了一些其他挑战。