Страницы: 1
RSS
DAX. Join к таблице сведенных значений из неё самой., DAX
 
Доброго дня.
Уважаемые, было дело в этой вот теме Power Query аналог формулы СУММЕСЛИМНмне очень помогли с созданием столбца с суммами в PQ. Конкретно очень полезной оказалась формула:
Код
= Table.Join(Источник, {"Код", "Товар"}, Table.Group(Источник, {"Код", "Товар"}, {{"Сумма Продаж по товару 2", each List.Sum([Продажи])}}), {"Код", "Товар"})

Теперь сижу втыкаю в справку и никак не могу дотумкать как мне такой же фокус сделать в DAX. Помогите, голова закипает уже.

В примере я в модель данных поместил табличку, которая получается при помощи запроса PQ, в ней запросом сформирован столбец Сумма Продаж по товару. Прошу сделать в модельке рядом столбец с вычислением таких же значений на DAX.
Вот горшок пустой, он предмет простой...
 
Цитата
PooHkrd написал:
В примере
??
F1 творит чудеса
 
Ой!
Вот горшок пустой, он предмет простой...
 
Цитата
PooHkrd написал:
такой же фокус сделать в DAX
А смысл в Join в DAX каков? Не глядя в модель
Код
CALCULATE(SUM('Sales'[Продажи]); ALL('Sales'[Город]; 'Sales'[Продажи]))
 
Андрей VG, спасибо.
Вроде даже помню из справки этот пример, но к себе не применил. Надо разбираться с этим CALCULATE
Вот горшок пустой, он предмет простой...
 
Код
=CALCULATE(SUM('Sales  2'[Продажи]);ALLEXCEPT('Sales  2';'Sales  2'[Товар]))

Только тип данных установите, а то модель числа как текст воспринимает
F1 творит чудеса
 
Цитата
Максим Зеленский написал:
ALLEXCEPT('Sales  2';'Sales  2'[Товар])
Не, Максим, так у меня в требуемое не попадает ;)
Да, можно вопрос. Почему получается фигня, равная 8 для меры (не действуют группировки по Город, Продажи)
Код
COUNTROWS(ALLEXCEPT('Sales 2'; 'Sales 2'[Код]; 'Sales 2'[Товар]))
при строках группировки Код, Товар, Город, Продажи?
Изменено: Андрей VG - 04.08.2017 14:54:39
 
Цитата
Андрей VG написал:
Не, Максим, так у меня в требуемое не попадает
? немного непонятно. У моей и вашей формулы результат одинаков, но если в таблице появится доп.столбец (например, "менеджер"), то ваша будет учитывать его в контексте строки, а моя будет считать по-прежнему только по товару.
Цитата
Андрей VG написал:
Почему получается фигня, равная 8 для меры (не действуют группировки по Город, Продажи)
я так понимаю, что в данном случае это
а) эквивалент
Код
=COUNTROWS(ALL('Sales  2'[Город];'Sales  2'[Продажи];'Sales  2'[Сумма Продаж по товару]))

б) мы считаем строки именно в этой таблице, созданной ALL или ALLEXCEPT. На нее не действуют фильтры, примененные к таблице 'Sales  2'. Если бы мы считали
Код
CALCULATE(COUNTROWS('Sales  2');ALLEXCEPT('Sales  2'; 'Sales  2'[Код]; 'Sales  2'[Товар]))

то результат был бы 2, так как тут уже действуют фильтры сводной, примененые к 'Sales  2'
F1 творит чудеса
 
Цитата
Максим Зеленский написал:
У моей и вашей формулы результат одинаков,
Приношу свои извинения. Поспешил с выводами. Вместо поля Товар указал Продажи с соответствующими последствиями :(
Цитата
Максим Зеленский написал:
На нее не действуют фильтры, примененные к таблице 'Sales  2'. Если бы мы считали
Большое спасибо. Хотя "физическое" действо их не совсем понятно - поковыряю.
Страницы: 1
Наверх