Powerpivot: объединение исторических данных для базы данных и прогноза из вычисляемой связанной таблицы в одной сводной таблице.

Я заметил, что несколько человек пытались сделать то же самое, о чем я спрашиваю ниже. В моем ответе может быть предложение о том, как это исправить, поэтому я сначала задам вопрос.

У меня есть исторические данные, которые я получаю из подключения к хранилищу данных и загружаю в Powerpivot:

Date         Store    Sales    NumTransactions   Tag
2010-01-01   A        20000    50                Historical
2010-01-01   B        15000    10                Historical
2010-01-01   C        5000     3                 Historical
2010-01-01   D        300000   500               Historical

Это подключение к Powerpivot является прямым подключением к серверу базы данных.

И на основе этих данных я рассчитываю прогноз в Excel, который выдает таблицу, которая затем переносится в PowerPivot с использованием связанной таблицы.

Date         Store    Sales    NumTransactions   Tag
2010-01-02   A        20010    51                Forecast
2010-01-02   B        16000    12                Forecast
2010-01-02   C        6000     5                 Forecast
2010-01-02   D        400000   650               Forecast

Исходя из этого, я хочу иметь возможность управлять несколькими сводными таблицами и диаграммами, которые отображают оба набора данных вместе:

Date         Store    Sales    NumTransactions   Tag
2010-01-01   A        20000    50                Historical
2010-01-01   B        15000    10                Historical
2010-01-01   C        5000     3                 Historical
2010-01-01   D        300000   500               Historical
2010-01-02   A        20010    51                Forecast
2010-01-02   B        16000    12                Forecast
2010-01-02   C        6000     5                 Forecast
2010-01-02   D        400000   650               Forecast

Как мне это сделать? Я не могу заставить отношения работать, так как есть несколько дат и несколько записей в магазине.

Я попытался объединить их вместе в Powerpivot в свойствах таблицы -> Редактор запросов:

SELECT [daily].* FROM [daily]
UNION ALL
SELECT [fcst].* from [fcst]

(Where [daily] is the historical data from the datawarehouse and [fcst] is the linked table within the excel workbook that has been linked into powerpivot)

Но проблема в том, что Powerpivot ищет [fcst] из соединения, которое восходит к хранилищу данных, откуда поступают мои исторические данные.

Я могу обойти эту проблему, создав две сводные таблицы из двух источников данных, а затем связать их вместе в одну таблицу в Excel, напрямую ссылаясь на ячейки сводных таблиц (а затем вывести из нее диаграммы). Но это грязно, и я уверен, что это можно сделать. Я просто не могу понять, как.

Находится ли ответ в наборе, определенном MDX?

Любые идеи очень приветствуются.

Спасибо!


person Shnita Moluna    schedule 08.06.2012    source источник
comment
Вы пытаетесь совместить подключение к данным из базы данных и Excel? возможно, если бы у вас было первое соединение в excel, а затем создайте это второе соединение для объединения обеих таблиц из excel..   -  person Aprillion    schedule 09.06.2012
comment
@deathApril Я пытаюсь это сделать, но когда я захожу в меню таблицы -> свойства таблицы, а затем редактирую запрос на подключение к базе данных, я не могу ссылаться на связанную таблицу. Я пробовал ссылаться на таблицу как [прогноз] и [прогноз$], но каждый раз, когда я это делаю, он пытается найти прогноз в соединении с базой данных...   -  person Shnita Moluna    schedule 10.06.2012
comment
создайте новый файл с подключением данных к excel и посмотрите на предложение from - у меня нет excel на этом компьютере, но он выглядит как ['C:\folder\filename.xlsx'].['Sheet 2']   -  person Aprillion    schedule 10.06.2012
comment
Да, это можно сделать и таким образом, но я хочу сохранить его в виде одного файла, чтобы его можно было легко использовать в организации. Должен быть способ сослаться на связанную таблицу в операторе запроса таблицы.   -  person Shnita Moluna    schedule 10.06.2012


Ответы (2)


Когда PowerPivot создает связь, в одной таблице должен быть столбец с различными значениями, который вы используете в качестве столбца поиска для другой таблицы. Я бы посоветовал вам создать таблицу дат. Его можно получить по адресу https://datamarket.azure.com/dataset/1542c52d-d466-4094-a801-9ef8fd7c6485, если у вас нет простого способа создать его. Затем вы можете создать связь от daily до date и от fcst до date. Я бы также добавил вычисляемый столбец в daily только со строкой «Исторический» и добавил вычисляемый столбец в fcst для строки «Прогноз». Добавьте еще одну связанную таблицу с двумя строками: Исторический, Прогноз. Затем создайте связь от daily к этой связанной таблице. Если вы создадите плоскую сводную таблицу со всем этим на месте, вы сможете приблизиться к тому, что ищете, но у вас, вероятно, будет один столбец для продаж для истории и другой столбец для продаж для прогноза. Вы можете создать меру в одной из таблиц (неважно, в какой), чтобы использовать условную логику для использования применимого значения на основе текущего тега и просто использовать его вместо этого в своей сводной таблице. Сделайте то же самое для количества транзакций.

person Stacia    schedule 10.06.2012
comment
Отличная идея! У меня сейчас взаимосвязь работает, но мне трудно получить меру для объединения двух столбцов продаж. У меня есть флаг fcst_flag в обеих таблицах, где он равен 1 для прогноза. Я пробовал =IF(VALUES(исторический[fcst_flag]=1, VALUES(прогноз[продажи]), VALUES(исторический[продажи]), но я все еще получаю только исторические продажи... Спасибо! - person Shnita Moluna; 10.06.2012
comment
На самом деле, подумав еще немного, я не думаю, что вам нужно возиться с условной логикой. Вы должны иметь возможность создать такую ​​меру: = сумма (прогноз [продажи]) + сумма (исторические [продажи]). Таким образом, один или другой будет нулевым, пока вы включаете столбец на основе новой связанной таблицы (исторический/прогноз), а затем мера должна рассчитывать либо прогнозируемые продажи, либо исторические продажи. Если это работает, избавьтесь от fcst_flag. - person Stacia; 10.06.2012
comment
Благодарю вас! Оно работает! Это сэкономило мне столько времени... Ты святой! - person Shnita Moluna; 10.06.2012

Вы также можете добавить таблицу дат окончания месяца, которая не связана ни с какими другими таблицами, и использовать эту дату в качестве среза с датами, равными или меньшими, чем слайсер, выбрать фактические данные и даты больше, чем слайсер, использовать прогноз. При этом вы избегаете получения фактических данных за неполный месяц за неполный месяц. Затем добавьте меру, например...

calculate(sum(historical[sales], filter(historical[date]<=max(monthend[Dates]))) + calculate(sum(forecast[sales], filter(forecast[sales]> max(monthend[Dates])))
person Shawn Turkington    schedule 15.04.2016