Устранение отсутствующих курсов валют с помощью Power Query в LuckyTemplates

Устранение отсутствующих курсов валют с помощью Power Query в LuckyTemplates

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

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

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

Оглавление

Определение недостающих данных

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

Если у вас нет ставки в какой-либо день и вы не учитываете ее, такие показатели, как «Общий объем продаж», не будут преобразованы.

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

Устранение отсутствующих курсов валют с помощью Power Query в LuckyTemplates

Но обратите внимание, что 27-й и 28-й дни отсутствуют и не имеют коэффициента. Итак, если зайти в матрицу, то можно увидеть, что ставок на 27 и 28 нет.

Устранение отсутствующих курсов валют с помощью Power Query в LuckyTemplates

Валютный курс с отсутствующей мерой — это просто сумма фактической таблицы валютных курсов.

Устранение отсутствующих курсов валют с помощью Power Query в LuckyTemplates

Сумма 26,6983 в таблице не имеет смысла. Это просто сумма всех курсов валют выше нее, которую вам не нужно складывать, потому что они такие же, как и ниже текущего дня.

Теперь это можно исправить в Power Query , потому что это больше проблема моделирования данных, которая включает запросы и агрегирование. Это также можно сделать с помощью DAX, но проще и быстрее с Power Query в LuckyTemplates.

Итак, нажмите Transform Data , а затем откройте окно Power Query.

Это таблица с отсутствующими данными. Вы также можете увидеть в этой таблице курсов валют, что она содержит евро, фунты и доллары.

Устранение отсутствующих курсов валют с помощью Power Query в LuckyTemplates

И затем это финальная таблица со значениями на 27 и 28 января. Это таблица или выходные данные, которые у вас должны быть.

Устранение отсутствующих курсов валют с помощью Power Query в LuckyTemplates

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

Разделение разных валют

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

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

Устранение отсутствующих курсов валют с помощью Power Query в LuckyTemplates

Вы также можете видеть, что здесь пропущены дни, а также валюта фунта.

В LuckyTemplates есть такая штука, как « Вызов пользовательской функции» . Это функция с FillMissingRates.

Если вы нажмете Евро, вы увидите полную таблицу, содержащую недостающие данные, которые вы видели в расширенной таблице. Он отсортирован от самых старых до самых новых ставок.

Устранение отсутствующих курсов валют с помощью Power Query в LuckyTemplates

Выясните, что делают пользовательские функции. Если щелкнуть значок шестеренки рядом с «Вызвать пользовательскую функцию», вы увидите имя столбца и источник, который извлекается в столбце «Все».

Устранение отсутствующих курсов валют с помощью Power Query в LuckyTemplates

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

Например, если вы хотите сосредоточиться на евро, отфильтруйте его до тикера.

Устранение отсутствующих курсов валют с помощью Power Query в LuckyTemplates

Чтобы выяснить, какие дни отсутствуют, объедините его с таблицей дат.

Вот базовая отфильтрованная таблица валют и таблица DimDate:

Устранение отсутствующих курсов валют с помощью Power Query в LuckyTemplates

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

Когда вы объедините его, он даст вам полную таблицу в качестве подтаблицы.

Устранение отсутствующих курсов валют с помощью Power Query в LuckyTemplates

После этого отсортируйте строки, а затем разверните DimDate, чтобы включить только столбец Date.

Устранение отсутствующих курсов валют с помощью Power Query в LuckyTemplates

Теперь вы можете видеть, что все совпало. И когда вы сортируете строки от самых старых до самых новых, вы также можете увидеть два пропущенных дня с нулевыми значениями.

Устранение отсутствующих курсов валют с помощью Power Query в LuckyTemplates

Заполнение недостающих ставок

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

После того, как вы заполните его, вы увидите, что нулевые значения изменились на евро и последний доступный курс.

Устранение отсутствующих курсов валют с помощью Power Query в LuckyTemplates

Затем удалите из таблицы ненужные столбцы, такие как столбец «Дата».

Столбец Date.1 уже содержит даты, поэтому столбец Date не нужен. Затем установите Crossrate на Decimal Number.

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

Устранение отсутствующих курсов валют с помощью Power Query в LuckyTemplates

Теперь у вас есть полная таблица курсов валют.

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

Объединение всех валют

Если у вас разные валюты, сложно вести разные таблицы курсов. Итак, вам нужно объединить их, чтобы сделать одну таблицу валют.

Для начала возьмите существующую таблицу и создайте функцию, нажав « Таблица» и выбрав «Создать функцию» . Затем введите имя функции.

Устранение отсутствующих курсов валют с помощью Power Query в LuckyTemplates

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

Устранение отсутствующих курсов валют с помощью Power Query в LuckyTemplates

Затем назовите свой параметр Source, а затем введите Let. Поскольку отфильтрованные строки были удалены, измените значение в синтаксисе объединенных запросов на Источник. После этого удалите Source в конце синтаксиса и нажмите Done.

Устранение отсутствующих курсов валют с помощью Power Query в LuckyTemplates

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

Устранение отсутствующих курсов валют с помощью Power Query в LuckyTemplates

Следующее, что нужно сделать, это удалить все столбцы, кроме всех данных. Затем разверните этот столбец и снимите флажок «Использовать исходное имя столбца в качестве префикса». После этого нажмите OK и измените типы столбцов.

Устранение отсутствующих курсов валют с помощью Power Query в LuckyTemplates

Установите для столбцов «Дата», «Тикер» и «Кроссрейт» тип «Дата», «Текст» и «Десятичный» соответственно. После этого нажмите «Закрыть и применить».

Теперь вы получите комбинированную таблицу курсов валют без пропущенных дат и курсов.

Создание отношений в модели данных

В вашей модели данных вы можете увидеть таблицу FactCurrencyRates . Теперь создайте отношение Ticker to Ticker и Date to Date с этой таблицей и таблицами DimCurrencyRates и DimDate.

Устранение отсутствующих курсов валют с помощью Power Query в LuckyTemplates

В вашей матрице извлеките курс валюты без пропущенных , чтобы увидеть, что теперь у него есть курсы для 27-го и 28-го числа, сделанные в Power Query.

Устранение отсутствующих курсов валют с помощью Power Query в LuckyTemplates

Столбец «Последний зарегистрированный курс валюты» также показывает курсы пропущенных дней. Он показывает те же ставки и значения. Но разница между ними в том, что этот столбец создается в DAX.

Это мера и синтаксис этого столбца. Это не так просто, как использовать только функцию в Power Query.

Устранение отсутствующих курсов валют с помощью Power Query в LuckyTemplates

Взглянув на таблицу, вы увидите столбец «Продажи с конверсией — нет пропущенных». Он показывает продажи, конвертированные с использованием столбца «Курс валюты отсутствует». В другом столбце с преобразованными продажами используется столбец, созданный в DAX.

Функция, используемая для получения преобразованных продаж, называется . Если вы посмотрите на меру для этого столбца, вы увидите, что SUMX проходит через таблицу DimDate.

Устранение отсутствующих курсов валют с помощью Power Query в LuckyTemplates

Сравнение методов DAX и Power Query

На самом деле вы можете сравнить оба преобразованных столбца продаж, которые использовали DAX и Power Query в LuckyTemplates.

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

Устранение отсутствующих курсов валют с помощью Power Query в LuckyTemplates

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

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

Устранение отсутствующих курсов валют с помощью Power Query в LuckyTemplates

Затем загрузите серверные тайминги и план запросов. Поскольку вы сравниваете производительность, сначала очистите кеш, прежде чем запускать сравнение.

После запуска теста вы можете увидеть, что столбец, в котором использовался DAX, получил много сканирований и имеет общее время 71 миллисекунда.

Устранение отсутствующих курсов валют с помощью Power Query в LuckyTemplates

Теперь запустите другой столбец, который использовал Power query. Но сначала превратите другой столбец синтаксиса в комментарий.

Устранение отсутствующих курсов валют с помощью Power Query в LuckyTemplates

Вы можете видеть, что столбец работал всего 25 миллисекунд и имеет только 7 сканирований.

Устранение отсутствующих курсов валют с помощью Power Query в LuckyTemplates

Вы можете четко видеть, какие из методов DAX и Power Query работают быстрее и лучше.

Заключение

Преимущество использования метода Power Query в LuckyTemplates заключается в том, что данные уже сохранены. Таким образом, мера может найти скорость, а затем вывести ее с помощью простых функций.

Еще одна особенность этого метода заключается в том, что он не замедляется, если расчет становится сложным.

Однако это работает только в том случае, если данные, которые вы запрашиваете, не нужно преобразовывать на лету. Если это так, вы должны использовать DAX.

Всего наилучшего,


Что такое self в Python: примеры из реального мира

Что такое self в Python: примеры из реального мира

Что такое self в Python: примеры из реального мира

Как сохранить и загрузить файл RDS в R

Как сохранить и загрузить файл RDS в R

Вы узнаете, как сохранять и загружать объекты из файла .rds в R. В этом блоге также рассказывается, как импортировать объекты из R в LuckyTemplates.

Новый взгляд на первые N рабочих дней — решение для языка кодирования DAX

Новый взгляд на первые N рабочих дней — решение для языка кодирования DAX

В этом руководстве по языку программирования DAX вы узнаете, как использовать функцию GENERATE и как динамически изменять название меры.

Продемонстрируйте идеи с помощью метода многопоточных динамических визуализаций в LuckyTemplates

Продемонстрируйте идеи с помощью метода многопоточных динамических визуализаций в LuckyTemplates

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

Введение в фильтрацию контекста в LuckyTemplates

Введение в фильтрацию контекста в LuckyTemplates

В этой статье я пройдусь по контексту фильтра. Контекст фильтра — одна из основных тем, с которой должен ознакомиться любой пользователь LuckyTemplates.

Лучшие советы по использованию приложений в онлайн-службе LuckyTemplates

Лучшие советы по использованию приложений в онлайн-службе LuckyTemplates

Я хочу показать, как онлайн-служба LuckyTemplates Apps может помочь в управлении различными отчетами и аналитическими данными, созданными из различных источников.

Анализ изменений маржи прибыли с течением времени — аналитика с LuckyTemplates и DAX

Анализ изменений маржи прибыли с течением времени — аналитика с LuckyTemplates и DAX

Узнайте, как рассчитать изменения вашей прибыли, используя такие методы, как разветвление показателей и объединение формул DAX в LuckyTemplates.

Идеи материализации кэшей данных в DAX Studio

Идеи материализации кэшей данных в DAX Studio

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

Бизнес-отчетность с использованием LuckyTemplates

Бизнес-отчетность с использованием LuckyTemplates

Если вы все еще используете Excel до сих пор, то сейчас самое подходящее время, чтобы начать использовать LuckyTemplates для своих бизнес-отчетов.

Что такое шлюз LuckyTemplates? Все, что тебе нужно знать

Что такое шлюз LuckyTemplates? Все, что тебе нужно знать

Что такое шлюз LuckyTemplates? Все, что тебе нужно знать