Страницы: 1
RSS
Расчет итоговых остатков в сводной таблице с помощью DAX
 
Добрый день. В сводной таблице некорректно считаются итоговый остатки (мера DAX). Помогите пжлт поправить формулу. Пример прилагается.
 
Цитата
Федор Логачев написал:
Помогите пжлт поправить формулу.
дело не в формуле, а в правильно построенной модели данных. Вы сделали модель данных, в которой календарь содержит дату со временем. Получается, что Вы считаете остаток не на минимальную дату, а на минимальную дату и время. А таковых у Вас две строки в таблице фактов: на 01 марта 7:00. Отсюда и результат в общих итогах. Сделайте связь таблицы фактов и календарь по дням без учета времени - так правильно. А для задач со временем используют другие подходы с созданием отдельной таблицы времени.
 
Цитата
написал:
Цитата
Федор Логачев написал:
Помогите пжлт поправить формулу.
дело не в формуле, а в правильно построенной модели данных. Вы сделали модель данных, в которой календарь содержит дату со временем. Получается, что Вы считаете остаток не на минимальную дату, а на минимальную дату и время. А таковых у Вас две строки в таблице фактов: на 01 марта 7:00. Отсюда и результат в общих итогах. Сделайте связь таблицы фактов и календарь по дням без учета времени - так правильно. А для задач со временем используют другие подходы с созданием отдельной таблицы времени.
Дело в том, что именно и надо найти первый в периоде путевой лист, а у него две временные характеристики дата и время, поэтому и использую такой календарь. Первоначально пробовал создавать две таблицы: дат и времени - не пошло(. Кроме того, у каждого механизма своя минимальная дата (необязательно 1-е число) и при такой формуле как у меня итоговая сумма рассчитается на минимальную дату всего календаря (пусть даже календарь будет только с датами) и не даст сумму по всем механизмам.  
Изменено: Федор Логачев - 12.05.2022 12:30:40
 
Федор Логачев, Вы можете спорить с нами, да даже с именитыми разработчиками, но даст ли Вам это результат? :)
Для вычислений даты и времени используйте 2 отдельных "календаря" - даты и времени. Календари должны быть без пропусков.
Цитата
Федор Логачев написал:
Кроме того, у каждого механизма своя минимальная дата (необязательно 1-е число) и при такой формуле как у меня итоговая сумма рассчитается на минимальную дату всего календаря (пусть даже календарь будет только с датами) и не даст сумму по всем механизмам.
Поверьте, создать меру, которая выдаст нужный Вам результат, можно. То, что у Вас результат не совпал с желаемым - это уже Вы некорректную меру написали :)
Изменено: surkenny - 12.05.2022 12:40:58
 
Цитата
написал:
Федор Логачев, Вы можете спорить с нами, да даже с именитыми разработчиками, но даст ли Вам это результат?
Для вычислений даты и времени используйте 2 отдельных "календаря" - даты и времени. Календари должны быть без пропусков.
Цитата
Федор Логачев написал:
Кроме того, у каждого механизма своя минимальная дата (необязательно 1-е число) и при такой формуле как у меня итоговая сумма рассчитается на минимальную дату всего календаря (пусть даже календарь будет только с датами) и не даст сумму по всем механизмам.
Поверьте, создать меру, которая выдаст нужный Вам результат, можно. То, что у Вас результат не совпал с желаемым - это уже Вы некорректную меру написали
Про некорректную в точку, поэтому и прошу помощи собственно)
 
Пока завал, после 14-15 разгребу и гляну.
 
Федор Логачев,
[Остаток на начало] переименовал в [#Остаток на начало] (сам код без изменений, верность не проверял, на первый взгляд норм).
У вас MIN ( 'База_пл'[Дата и время выезда] ) для каждого механизма свое. Поэтому нужно итерацию по значениям сделать:
Код
Остаток на начало:=SUMX ( VALUES ( 'База_пл'[Механизм] ); [#Остаток на начало] )

Код
Остаток на конец:=[Остаток на начало] + [Сумма по столбцу Заправка] - [Сумма по столбцу Расход факт]

Так верный результат?
 
surkenny, Да, все корректно, огромное спасибо!!!
Страницы: 1
Наверх