Страницы: 1
RSS
Связи трех таблиц в PowerPivot, Создание связи двух таблиц через промежуточную третью
 
Добрый день. Окажите, пожалуйста, содействие в решении следующей задачи.
Есть две таблицы, которые связаны с собой через третью. Необходимо в первую вытянуть данные из третьей.
Вероятно, необходимо будет использовать меру, но я не могу понять как ее прописать.
 
Если без изысков, то вот так. Но можно и мерой. Щас некогда- попозже допишу, если больше никто не заглянет.
Вот горшок пустой, он предмет простой...
 
Благодарю за решение. Буду ждать меру, хотелось бы ее понять, поскольку такие случаи в моей практике очень частые.
 
Цитата
Cyberf_k написал:
Необходимо в первую вытянуть данные из третьей.
в Продажи подтащить в доп.столбец значение доп.затрат из таблицы СложностьДоп, формула вычисляемого столбца:
Код
=RELATED('СложностьДоп'[Дополнительные затраты])

Без создания доп.столбца, мерой:
Код
=SUMX('Продажи';RELATED('СложностьДоп'[Дополнительные затраты]))
F1 творит чудеса
 
Спасибо. Отлично работает.
Подскажите, пожалуйста, будет ли работать текущая формула если у меня будет еще столбец "Месяц" в первой и третьей таблице и они будут связаны через таблицу с уникальными месяцами? Формула будет тянуть доп затраты по соответствующему месяцу?
 
Цитата
Максим Зеленский написал:
=SUMX('Продажи';RELATED('СложностьДоп'[Дополнительные затраты]))
Ух ты, а прям вот так вот можно было, да?! Век живи, век учись.
Я то попытался через ADDCOLUMNS сделать, но не срослось, стало ругаться, что в таком контексте нету того столбца, который я через RELATED подтягиваю. А тут вон оно как. Спасибо, Максим.
Изменено: PooHkrd - 21.02.2018 16:08:36
Вот горшок пустой, он предмет простой...
 
Добавил месяцы и расширил таблицы. Пришлось добавить промежуточные таблицы для связи.
Посодействуйте, пожалуйста, в получении тех же данных, но в текущих условиях.
Спасибо.
Файл
 
Доброе время суток.
Можно такой мерой воспользоваться
Код
= SUMX (
    SUMMARIZE (
        'Продажи';
        'Продажи'[Номенклатура];
        "added sum"; CALCULATE ( SUM ( 'СложностьДоп'[Дополнительные затраты] ); 'Продажи' )
    );
    [added sum]
)
 
Доброе утро, Андрей.
Спасибо за меру.
Она отлично работает если смотреть в разрезе номенклатур, но если смотреть по типу, то тот тип, в который входит несколько товаров, она суммирует.
Можно ли ее как-то модифицировать так, чтобы она была аналогом ВПР/RELATED что ли, но с учетом месяцев?
 
Цитата
Cyberf_k написал:
Она отлично работает если смотреть в разрезе номенклатур, но если смотреть по типу, то тот тип, в который входит несколько товаров, она суммирует.
А должна что делать? Будет хорошо, если вы возьмете ваш файл пример и просто в нем создадите итоговую таблицу руками как вы ее видите, и какой результат исходя из данных должен получиться, посчитайте калькулятором и просто впишите значения, а то приходится догадываться, что вы хотите.
 
StepanWolkoff, добавил в файл таблицу рядом со сводной. Красным цветом выделил ожидаемый результат.
Ссылка
 
Цитата
PooHkrd написал:
стало ругаться, что в таком контексте нету того столбца
поэтому в первом аргументе SUMX стоит таблица целиком. Если оставить только, например, VALUES('Продажи'[Номенклатура]), то уже не видит связь.
Но так как ТС на тот момент не объяснил, как он хочет видеть результат, то такая формула оказалась приемлемой.
F1 творит чудеса
 
Цитата
Cyberf_k написал:
ожидаемый результат.
Код
форум2:=IF(ISFILTERED('Продажи'[Тип товара]);
MAXX (
    SUMMARIZE (
        'Продажи';
        'Продажи'[Номенклатура];
        "added sum"; CALCULATE ( MAX ( 'СложностьДоп'[Дополнительные затраты] ); 'Продажи' )
    );
    [added sum]
);
SUMX (
    SUMMARIZE (
        'Продажи';
        'Продажи'[Номенклатура];
        "added sum"; CALCULATE ( SUM ( 'СложностьДоп'[Дополнительные затраты] ); 'Продажи' )
    );
    [added sum]
)
)
 
А-а-а, т.е. если в качестве первого аргумента для SUMX я подсуну ADDCOLUMNS внутри которого попытаюсь при помощи RELATED создать доп.столбец, после чего вторым аргументом SUMX этот столбец суммировать, то он тоже теряет связь? РР на такую конструкцию ругается.
Код
мера:=SUMX(ADDCOLUMNS('СложностьДоп';"qwerty";RELATED('СложностьДоп'[Дополнительные затраты]));[qwerty])
Изменено: PooHkrd - 22.02.2018 10:19:12
Вот горшок пустой, он предмет простой...
 
StepanWolkoff, благодарю. Все работает.
Понять бы теперь как.. :)
Спасибо всем за содействие.
 
А я честно говоря не понял, по какому принципу должно вывестись в сводной значение для строки месяца. Сумма по товарам, но не сумма по типам?
F1 творит чудеса
 
Цитата
PooHkrd написал:
я подсуну ADDCOLUMNS
а что является related таблицей к таблице 'СложностьДоп'? там, наверное, другая таблица в ADDCOLUMNS должна быть, К КОТОРОЙ тащим сложность
F1 творит чудеса
 
Cyberf_k, все-таки почему в марте должно быть 288? :)
F1 творит чудеса
 
Цитата
Максим Зеленский написал:
все-таки почему в марте должно быть 288?
Э, Максим, "они всё путают и имя и названья...". Как бы в первом случае нужна сумма дополнительных затрат по номенклатурам с учётом месяца. А во втором - просто сумма те дополнительных затрат, которые принадлежат данному типу. Поэтому в марте для сумма по номенклатурам 288, так как их две, а по типу только 144, так как относятся к одному типу. Так понимаю.
Изменено: Андрей VG - 22.02.2018 10:58:18
 
Цитата
Максим Зеленский написал:
А я честно говоря не понял, по какому принципу должно вывестись в сводной значение для строки месяца. Сумма по товарам, но не сумма по типам?
Я над этим размышлял, но, на мой взгляд, исходя из вводных условий любая простая сумма по строке месяца будет давать непонятный результат. Чтобы он имел смысл, его нужно взвешивать по объему. То же применимо и к общему итогу, на мой взгляд. Мне, конечно, было бы интересно увидеть меры и способы реализации, которые позволяли ли бы получать необходимые результаты, но я не уверен, что в дальнейшем буду ими пользоваться, поэтому просить участников форума попробовать их написать ради удовлетворения интереса полагаю не совсем правильным.
Я добавил в файле два варианта, которые, как я представляю, могли бы быть полезными для представления. Если у кого-то есть желание и возможность попробовать сделать необходимые меры "ради интереса", то файл по ссылке
 
Андрей VG, ну да,  я так и понял и исходя из этого сделал "переключение" итогов. Но почему должно быть именно так - это ведомо только автору, а это к теме разговора из другого топика.
 
Цитата
Максим Зеленский написал:
К КОТОРОЙ тащим сложность
Блин, я слепой олень! Поставил таблицу 'Продажи' - все работает.
Код
мера:=SUMX(ADDCOLUMNS('Продажи';"qwerty";RELATED('СложностьДоп'[Дополнительные затраты]));[qwerty])
Изменено: PooHkrd - 22.02.2018 11:23:44
Вот горшок пустой, он предмет простой...
 
Цитата
Cyberf_k написал:
Я добавил в файле два варианта, которые, как я представляю, могли бы быть полезными для представления. Если у кого-то есть желание и возможность попробовать сделать необходимые меры "ради интереса", то файл по  ссылке
Ребята, мне также интересна эта тема, сталкиваюсь с похожими задачами, но понимания механизма решения DAX нет. Есть у кого-нибудь желание и возможность сделать меры, приложенные юзером Cyberf_k? Спасибо.
 
Я бы вам рекомендовал сформулировать новую тему с описанием проблемы и добавить в неё файл-пример, который помещался бы в 100 кб. Тогда количество помощников будет по-больше. Разбираться в том, что тут кто формулировал вряд ли кто будет. Тем более что на основной вопрос ТС ответ был дан, который его устроил.
Вот горшок пустой, он предмет простой...
 
Цитата
Anatoly V. написал:
Есть у кого-нибудь желание и возможность сделать меры, приложенные юзером Cyberf_k? Спасибо.
Так а что там делать? Посмотрел пример - ничего нового, только теперь для каждого из трех уровней свои подитоги. Как это реализовать - я уже написал в сообщении #13. Если этого не достаточно для понимания, то гуглится на раз по словам ISFILTERED, HASONEVALUE и SUBTOTAL.
 
Ок, большое спасибо за предоставленное инфо и советы, очень познавательно.
Как-бы организовать нам какое-нибудь сообщество "любителей DAX" для обсуждений тем, проблем и методов расчета в спарке в т.ч. с BI.

Сформулирую конкретное маловесящее задание, напрвалю дополнительно.
Страницы: 1
Читают тему
Наверх