Подводя итоги - PullRequest
       4

Подводя итоги

0 голосов
/ 09 декабря 2018

Табличная модель.В таблице «Историческая стоимость одного часа проекта» содержится значение часов (например, цена) для рабочих часов проектов на несколько дат.Он связан только с таблицей проекта, но не с таблицей дат.

Я пытаюсь вычислить значение часов.На мой вопрос, скажем, есть только один час на каждый проект.Я получаю правильный ответ для каждого проекта, но общее число очень большое, чего я не понимаю.

Буду признателен за вашу помощь.

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 )
        )
    )

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

Правильный код после ответа Алексис Олсон:

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] )
                        )
                    )
            )

        )
    )

Спасибо

0 голосов
/ 10 декабря 2018

Переменная OneHourValueOnStartDateForOneProject является константой (а не мерой), поэтому в вашей итоговой сумме происходит то, что это значение дает вам сумму для всех Project ID значений в части вычисления VAR.

Оттуда ваш SUMX добавляет это постоянное значение столько же раз, сколько различаются HoursProjectID.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...