powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Итоги в табличной модели
19 сообщений из 19, страница 1 из 1
Итоги в табличной модели
    #39854803
Lania
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Имеется куб(Табличная модель). Реализована вот такая мера:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
SSL, %:=
var Ost = sum('Остатки дистрибьютора'[QuantityDal]) 
var AvgOrder = CALCULATE(sum('Заказ'[QuantityDal])/
                         DISTINCTCOUNT('Заказ'[OrderDate]);
                         filter(all('Дата'); 
                          and('Дата'[Дата]>=max('Дата'[Дата-30]);'Дата'[Дата]<=max('Дата'[Дата])
)
)

)

var ssl=  if(and(Ost =BLANK();AvgOrder>0); 0;  if(Ost/AvgOrder>1;1;Ost/AvgOrder))

Return ssl



Мера рассчитывается на каждом уровне. Но получается, что при детализации данный показатель по строкам может быть разный, но в итоге он расcчитывается от итоговых значений и поэтому всегда равен 100%. Можно ли как то реализовать, чтобы итог был средним от детализации?
...
Рейтинг: 0 / 0
Итоги в табличной модели
    #39855002
Lania
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я попыталась создать вычисляемый столбец:
Код: vbnet
1.
2.
=CALCULATE(sumx(filter(all('Заказ'); 
                          and('Заказ'[OrderDate]>='Заказ'[DateB];'Заказ'[OrderDate]<='Заказ'[DateE]));[QuantityDal]))



Он выводит итоговую сумму по столбцу [QuantityDal]. А надо, чтобы для каждой строки выводил сумму по столбцу с фильтром по дате.
...
Рейтинг: 0 / 0
Итоги в табличной модели
    #39855006
100ts
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Lania,

можете сделать пример в Power BI Desktop?
если вопрос решаем, так будет конструктивно и быстро
...
Рейтинг: 0 / 0
Итоги в табличной модели
    #39855132
IDVT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. В гугле "Detecting Total, Subtotal"
2. Вы точно написали про вычисляемый столбец? может речь о мере все же?
...
Рейтинг: 0 / 0
Итоги в табличной модели
    #39855170
Lania
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IDVT,
Да, я пыталась создать вычисление в столбце, чтобы потом создать вычисляемую меру просто sum, чтобы данные не рассчитывались на каждом уровне, а просто суммировались из детализации.
...
Рейтинг: 0 / 0
Итоги в табличной модели
    #39855183
IDVT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Либо закладывайте эту логику в запросе к источнику данных, либо выносите все в меру, расчетные колонки не сжимаются. Агрегаты в Dax не самое слабое место, приведите на примере что именно вы хотите рассчитать. Сейчас Ваша мера для каждой строки вернет одно и то же значения, понять что именно Вам нужно не так просто.
...
Рейтинг: 0 / 0
Итоги в табличной модели
    #39855199
Lania
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IDVT,
Во вложении скриншот сводной таблицы. SSL% это остатки/средний заказ. И в этом случае получается, что итоговый процент рассчитывается как итог по остаткам/итог средний заказ. и получается 100%. А нужно, чтобы в этом итоге было 90%, как среднее от всех значений внутри.
...
Рейтинг: 0 / 0
Итоги в табличной модели
    #39855214
IDVT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конкретно для этой задачи:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
AVG:=

  if( Distinct( Dimensional['Дистрибьютер']) = 1
    , 
       Var xQty = [запасы дистрибьютера, дал]
       Var xAvg = [Средний заказ за 30 дней]
       
       Return if( xAvg <> 0
                , xQty
                  / xAvg
                  * 100
                , ....
                )
  
    , AverageX( AddColumns( Values( Dimensional['Дистрибьютер'])
                          , "xValue"
                          , Var xQty = [запасы дистрибьютера, дал]
                            Var xAvg = [Средний заказ за 30 дней]
       
                            Return if( xAvg <> 0
                                     ; xQty
                                       / xAvg
                                       * 100
                                     ; ....
                                     )
                          , [xValue]
                          )
              )
    )
  
...
Рейтинг: 0 / 0
Итоги в табличной модели
    #39855222
Lania
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IDVT, спасибо. Получается такой вариант будет работать только если используется измерение "Дистрибьютор". А если к нему добавить другие, или вообще не будет Дистрибьютора, а будут другие поля, то уже работать не будет.
...
Рейтинг: 0 / 0
Итоги в табличной модели
    #39855228
Lania
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IDVT,
Конструкция Dimensional['Дистрибьютер'] наверное работает только в power bi, в табличной модели кубов такое не поддерживается.
...
Рейтинг: 0 / 0
Итоги в табличной модели
    #39855231
IDVT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimensional['Дистрибьютер'] => ИмяИзмерения[ИмяАтрибута] по которым Вам нужно сгруппировать расчет и получить среднее значение.
...
Рейтинг: 0 / 0
Итоги в табличной модели
    #39855237
Lania
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IDVT,уже дошло)
...
Рейтинг: 0 / 0
Итоги в табличной модели
    #39856741
Lania
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IDVT, результат данного выражения ничем не отличается, от того, что у меня уже было рассчитано.
...
Рейтинг: 0 / 0
Итоги в табличной модели
    #39856939
IDVT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Покажите свою меру...
...
Рейтинг: 0 / 0
Итоги в табличной модели
    #39856980
Lania
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IDVT,
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
AVG:=

  
    AVERAGEX( AddColumns( Values('Адрес доставки'[Дистрибьютор] )
                          ; "xValue"
                          ;  Var xQty = sum('Остатки дистрибьютора'[QuantityDal])
 Var xAvg = CALCULATE(sum('Заказ'[QuantityDal])/
                         DISTINCTCOUNT('Заказ'[OrderDate]);
                         filter(all('Дата'); 
                          and('Дата'[Дата]>=max('Дата'[Дата-30]);'Дата'[Дата]<=max('Дата'[Дата])
)
)

) 
       
                            Return if(and(xQty =BLANK();xAvg >0); 0;  if(xQty /xAvg >1;1;xQty /xAvg )));[xValue])
...
Рейтинг: 0 / 0
Итоги в табличной модели
    #39857027
IDVT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пустое имя дистрибьютора это что? нет соответствующего ключа в измерении и факты сопоставляются с Blank()?
...
Рейтинг: 0 / 0
Итоги в табличной модели
    #39857152
Lania
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IDVT,
Дистрибьютор является атрибутом. Ключевой атрибут другой. там есть и другое дистры с 0%. Как оказалось очень многим не нравится такая логика расчета итогов. В другом случае обратились, что есть вычисляемое поле, где итог это не сумма всех значений по столбцу, а так же вычисление по итогу. Я сейчас попробую реализовать на многомерной модели и посмотрю как там будут вычисляться итоги. Но от многомерной хотелось бы уже уходить.
...
Рейтинг: 0 / 0
Итоги в табличной модели
    #39857257
IDVT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нечего не понял из написанного.... Скрин на примере PowerBI
...
Рейтинг: 0 / 0
Итоги в табличной модели
    #39857826
bideveloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В MDX надо использовать Scope. В DAX смотреть, как аналогично его реализовать. Вот есть серия статей: https://javierguillen.wordpress.com/2012/05/02/scoping-at-different-granularities-in-dax-part-i/
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Итоги в табличной модели
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]