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

Выгрузка курсов валют настраивается так же как любой другой источник, для этого в разделе «Источники данных» необходимо нажать на кнопку «Добавить новый+» (1):

 

В списке доступных сервисов выбрать «Другое» (1) и нажать на кнопку «Подключить»  на плитке «Курсы валют» (2):

 

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

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

В первую очередь нам необходимо скачать шаблон модели для Google AdWords в разделе «Файлы для загрузки». Если  у Вас не подключен данный сервис, то вы можете использовать любой другой, который Вам необходим, но с небольшими изменениями. После того как шаблон загружен, необходимо подключиться к БД и загрузить данные, об этом более подробно написано в другой нашей статье 2. Работа с готовыми моделями в Power BI.

Чтобы использовать сведения по курсам нам необходимо добавить две таблицы в отчет. Для этого необходимо нажать на кнопку «Получить данные» (1) в верхнем меню Power BI Desktop, в появившемся окне выбрать «Azure» (2) и «База данных SQL Azure» (3), после чего нажать на кнопку «Подключить» (4):

 

Далее нам будет необходимо выбрать базу данных, из которой будут выгружаться данные. Для этого в появившемся окне выбираем «Параметр» (1) и в выпадающих списках выбираем «Сервер» (2) и «База данных» (3), после чего нажимаем кнопку «OK»:

 

В списке доступных таблиц и представлений необходимо отметить «CUR Курсы валют» и «CUR Параметры валют» (1) и нажать на кнопку «Загрузить»:

 

После того, как данные из БД будут загружены в отчет, необходимо добавить новую связь между полями «Дата»таблицы «CUR Курсы валют» и таблицы «SHD Параметры дат», в дополнении к той, которую автоматически создал PBI. В результате чего связи должны выглядеть так как показано на скриншоте:

 

После того как данные загружены и необходимые связи созданы, мы можем приступить к созданию дополнительных мер, которые будут использованы для преобразования рублей в валюту. С начала мы создаем новую меру в таблице «CUR Курсы валют», которая будет вычислять курс рубля в отношении к той или иной валюте:

Курс рубля = 
AVERAGEX (
    ADDCOLUMNS (
        'CUR Курсы валют';
        "Номинал"; RELATED ( 'CUR Параметры валют'[Номинал] )
    );
    1
        / ( [Курс] * [Номинал] )
)

 

Далее мы создаем меру, которая и будет вычислять саму конвертацию, но уже в таблице «GAW Статистика по объявлениям»:

Сумма расходов в валюте = 
IF (
    HASONEVALUE ( 'CUR Параметры валют'[Название] );
    SUMX (
        ADDCOLUMNS (
            'SHD Параметры дат';
            "Сумма"; 'GAW Статистика по объявлениям'[Сумма расходов]
                * 'CUR Курсы валют'[Курс рубля]
        );
        [Сумма]
    );
    'GAW Статистика по объявлениям'[Сумма расходов]
)

 

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

 

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

Шаблон модели, которая получилась в результате действий, описанных в этой статье, вы можете скачать по ссылке.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *