Страницы: 1
RSS
PowerPivot Фильтр на основе несвязанной таблицы
 
Имеется две таблицы: таблица продаж и таблица ракурс. Обе добавлены в модель PowerPivot. Но связь между ними создать нельзя, так как общее поле "Код товара" не содержит уникальные значения ни в той, ни в другой таблице - в "Продажах" код товара повторяется изо дня в день, в "Ракурсе" один код товара может быть в разных акциях. Хотел "на лету" создавать связь в функции Filter(), типа "Если выбрана одна акция, тогда отобрать в таблице "Продажи" коды товара, которые отфильтровались в таблице "Ракурс"" (внутри одной акции коды товара уникальны). И вот как не бьюсь, не могу добиться нужно результата.
Во вложении упрощенная модель, как хочется это видеть: Поле фильтра с акциями и сводная таблица, которая рассчитывается исходя из значения фильтра.
 
Здравствуйте!
А если так?  
 
_Igor_61, спасибо, но вопрос про решение в PowerPivot. Как в обычных таблицах построить я знаю.
 
Пока вот так решил:
Код
test2:=if(HASONEFILTER('Ракурс'[Акция]);
   if(SUMX('Продажи';'Продажи'[Сумма]*CALCULATE(NOT(ISEMPTY('Ракурс'));FILTER('Ракурс';'Ракурс'[Код товара]='Продажи'[Код товара])))=0;
      BLANK();
      SUMX('Продажи';'Продажи'[Сумма]*CALCULATE(NOT(ISEMPTY('Ракурс'));FILTER('Ракурс';'Ракурс'[Код товара]='Продажи'[Код товара])))
      );
   SUM('Продажи'[Сумма])
   )

Не знаю пока как будет работать на реальных данных, если кто подскажет более элегантное решение, буду благодарен.
 
Доброе время суток.
Не совсем понятно, зачем организовывать такую структуру для анализа. Не проще ли иметь по каждой продаже товара информацию по какой акции он продавался? В этом случае будет обычная "звезда" с простыми мерами.
Как в лоб сделать в 2010, 2013 не скажу, может Максим Зеленский что подскажет, если будет просматривать тему. В 2016 решается через NaturalLinearJoin. В 2010, 2013 проще создать таблицу товаров и использовать её как связь между таблицами.
Успехов.
 
Андрей VG, спасибо огромное, вот что значит свежий не замыленный взгляд. Естественно так правильнее сделать, затупил из-за того, что выгрузка приходит единой таблицей (в таблице фактов товары идут со всеми характеристиками и измерениями групп), что тоже добавляет геморроя в плане объема, но не от меня зависит.
Прям стыдно стало, столько делал подобных отчетов, а тут затмение случилось :D
 
Да ну правда, проще и правильнее через справочник товаров решить. "В лоб" есть вариант с FILTER:
Код
[Filtered Measure] := 
CALCULATE (
    <target_measure>,
    FILTER (
        ALL ( <target_granularity_column> ),
        CONTAINS (
            VALUES ( <lookup_granularity_column> ),
            <lookup_granularity_column>,
            <target_granularity_column>
        )
    )
)

но это более чем в 100 раз медленнее чем физическая связь :)
F1 творит чудеса
Страницы: 1
Наверх