Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Итоги в табличной модели / 19 сообщений из 19, страница 1 из 1
28.08.2019, 17:25
    #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
29.08.2019, 11:05
    #39855002
Lania
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итоги в табличной модели
Я попыталась создать вычисляемый столбец:
Код: vbnet
1.
2.
=CALCULATE(sumx(filter(all('Заказ'); 
                          and('Заказ'[OrderDate]>='Заказ'[DateB];'Заказ'[OrderDate]<='Заказ'[DateE]));[QuantityDal]))



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

можете сделать пример в Power BI Desktop?
если вопрос решаем, так будет конструктивно и быстро
...
Рейтинг: 0 / 0
29.08.2019, 13:27
    #39855132
IDVT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итоги в табличной модели
1. В гугле "Detecting Total, Subtotal"
2. Вы точно написали про вычисляемый столбец? может речь о мере все же?
...
Рейтинг: 0 / 0
29.08.2019, 14:13
    #39855170
Lania
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итоги в табличной модели
IDVT,
Да, я пыталась создать вычисление в столбце, чтобы потом создать вычисляемую меру просто sum, чтобы данные не рассчитывались на каждом уровне, а просто суммировались из детализации.
...
Рейтинг: 0 / 0
29.08.2019, 14:32
    #39855183
IDVT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итоги в табличной модели
Либо закладывайте эту логику в запросе к источнику данных, либо выносите все в меру, расчетные колонки не сжимаются. Агрегаты в Dax не самое слабое место, приведите на примере что именно вы хотите рассчитать. Сейчас Ваша мера для каждой строки вернет одно и то же значения, понять что именно Вам нужно не так просто.
...
Рейтинг: 0 / 0
29.08.2019, 14:50
    #39855199
Lania
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итоги в табличной модели
IDVT,
Во вложении скриншот сводной таблицы. SSL% это остатки/средний заказ. И в этом случае получается, что итоговый процент рассчитывается как итог по остаткам/итог средний заказ. и получается 100%. А нужно, чтобы в этом итоге было 90%, как среднее от всех значений внутри.
...
Рейтинг: 0 / 0
29.08.2019, 15:11
    #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
29.08.2019, 15:17
    #39855222
Lania
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итоги в табличной модели
IDVT, спасибо. Получается такой вариант будет работать только если используется измерение "Дистрибьютор". А если к нему добавить другие, или вообще не будет Дистрибьютора, а будут другие поля, то уже работать не будет.
...
Рейтинг: 0 / 0
29.08.2019, 15:21
    #39855228
Lania
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итоги в табличной модели
IDVT,
Конструкция Dimensional['Дистрибьютер'] наверное работает только в power bi, в табличной модели кубов такое не поддерживается.
...
Рейтинг: 0 / 0
29.08.2019, 15:25
    #39855231
IDVT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итоги в табличной модели
Dimensional['Дистрибьютер'] => ИмяИзмерения[ИмяАтрибута] по которым Вам нужно сгруппировать расчет и получить среднее значение.
...
Рейтинг: 0 / 0
29.08.2019, 15:31
    #39855237
Lania
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итоги в табличной модели
IDVT,уже дошло)
...
Рейтинг: 0 / 0
03.09.2019, 16:23
    #39856741
Lania
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итоги в табличной модели
IDVT, результат данного выражения ничем не отличается, от того, что у меня уже было рассчитано.
...
Рейтинг: 0 / 0
04.09.2019, 08:56
    #39856939
IDVT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итоги в табличной модели
Покажите свою меру...
...
Рейтинг: 0 / 0
04.09.2019, 10:19
    #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
04.09.2019, 11:23
    #39857027
IDVT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итоги в табличной модели
Пустое имя дистрибьютора это что? нет соответствующего ключа в измерении и факты сопоставляются с Blank()?
...
Рейтинг: 0 / 0
04.09.2019, 13:31
    #39857152
Lania
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итоги в табличной модели
IDVT,
Дистрибьютор является атрибутом. Ключевой атрибут другой. там есть и другое дистры с 0%. Как оказалось очень многим не нравится такая логика расчета итогов. В другом случае обратились, что есть вычисляемое поле, где итог это не сумма всех значений по столбцу, а так же вычисление по итогу. Я сейчас попробую реализовать на многомерной модели и посмотрю как там будут вычисляться итоги. Но от многомерной хотелось бы уже уходить.
...
Рейтинг: 0 / 0
04.09.2019, 15:19
    #39857257
IDVT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итоги в табличной модели
Нечего не понял из написанного.... Скрин на примере PowerBI
...
Рейтинг: 0 / 0
05.09.2019, 12:05
    #39857826
bideveloper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Итоги в табличной модели
В MDX надо использовать Scope. В DAX смотреть, как аналогично его реализовать. Вот есть серия статей: https://javierguillen.wordpress.com/2012/05/02/scoping-at-different-granularities-in-dax-part-i/
...
Рейтинг: 0 / 0
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Итоги в табличной модели / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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