Dax 总结价值观

Dax 总结价值观,dax,Dax,表格模型。 “历史项目一小时价值”表包含多个日期项目工作时间的小时价值(如价格)。 它仅连接到项目表,而不连接到日期表 我在计算小时数。对于我的问题,假设每个项目只有一个小时。 我得到了每个项目的正确答案,但总数是一个很大的数字,我不明白 我将感谢你的帮助 One Hour Value On Date := VAR OneHourValueOnStartDate = FILTER ( 'Historic Project One Hour Value', '

表格模型。 “历史项目一小时价值”表包含多个日期项目工作时间的小时价值(如价格)。 它仅连接到项目表,而不连接到日期表

我在计算小时数。对于我的问题,假设每个项目只有一个小时。 我得到了每个项目的正确答案,但总数是一个很大的数字,我不明白

我将感谢你的帮助

One Hour Value On Date :=
VAR OneHourValueOnStartDate =
    FILTER (
        'Historic Project One Hour Value',
        'Historic Project One Hour Value'[HistoricOneHourValueBeginDate]
            = DATE ( 2016, 12, 31 )
    )
VAR OneHourValueOnStartDateForOneProject =
    1
        * /*Actually, I multiply the working hours of the project, but this number is correct */
        CALCULATE (
            SUM ( 'Historic Project One Hour Value'[HistoricOneHourValue] ),
            OneHourValueOnStartDate
        )
RETURN
    IF (
        HASONEVALUE ( Projects[Project ID] ),
        CALCULATE ( OneHourValueOnStartDateForOneProject ),
        CALCULATE (
            SUMX ( VALUES ( Hours[HoursProjectID] ), OneHourValueOnStartDateForOneProject )
        )
    )

变量
OneHourValuesStartDateForOneProject
是一个常量(不是度量值),因此在您的合计中,该值为
VAR
计算部分中所有
Project ID
值的总和


从这里开始,您的
SUMX
添加该常量值的次数与在Alexis Olson回答后添加不同
hoursprojectd的次数相同

One Hour Value On Date:=
VAR OneHourValueOnStartDate =
FILTER (
'Historic Project One Hour Value',
'Historic Project One Hour Value'[HistoricOneHourValueBeginDate]
            = date(2016,12,31)    
)
VAR OneHourValueOnStartDateForOneProject =
1 *   /*Actually, I multiply the working hours of the project, but this number is correct */
CALCULATE (
SUM( 'Historic Project One Hour Value'[HistoricOneHourValue] ),
        OneHourValueOnStartDate
        )
RETURN
IF (
HASONEVALUE ( Projects[Project ID] ),
 CALCULATE ( OneHourValueOnStartDateForOneProject ),
CALCULATE (
  SUMX (
                Values ( Hours[HoursProjectID] ),
                1
      * CALCULATE (
                        MAX ( 'Historic Project One Hour Value'[HistoricOneHourValue] ),
                        FILTER (
                            OneHourValueOnStartDate,
                            'Historic Project One Hour Value'[HistoricOneHourValueProjectID]
                            = EARLIER ( 'Hours'[HoursProjectID] )
                        )
                    )
            )

        )
    )

谢谢

谢谢,你说得对。我已经用一个计算替换了sumx的OneHourValuesStartDateForOneProject,现在一切正常了。