Создайте постоянно обновляемый набор практических данных в LuckyTemplates

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

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

Проблема с тренировочными наборами данных заключается в том, что данные обычно статичны . Для эффективной практики вам необходимо создать впечатление, что данные находятся в реальном времени.

Оглавление

Настройка пути к файлу для практического набора данных

Для примера данных у меня есть файл Excel, содержащий данные о продажах за 2014, 2015 и 2016 годы.

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Это данные, которые мне нужно обновить.

Расположение документа можно найти здесь, на моей панели быстрого доступа.

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

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

Справа от нее есть точка доступа к панели быстрого доступа.

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Как только я нажимаю это, я получаю этот экран.

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Итак, я выберу «Все команды» , а затем выберу «Расположение документа» . Добавьте это на панель быстрого доступа и нажмите OK.

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

Итак, я создам новый параметр .

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Я назову это FileLocation .

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Под типом я выберу Text . А для Current Value я вставлю место в документе, которое скопировал ранее.

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Я собираюсь создать новый запрос.

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

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

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Здесь появится несколько разных таблиц, так как у меня есть данные о продажах за 2014, 2015 и 2016 годы. Мне просто нужно выбрать первую, это Sales_2014 .

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

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

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

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

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Затем я изменю его на параметр FileLocation, созданный ранее.

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Затем я нажму «Готово», чтобы зафиксировать эти изменения в запросе Sales_2014.

Создание папки подготовки данных

Глядя на Прикладные шаги для запроса Sales_2014, я нажму на шаг Навигация . Это показывает мне, что он ссылается на исходный шаг.

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

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

Теперь позвольте мне взглянуть на следующий шаг «Источник» .

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Шаг «Исходный код» показывает мне все, что находится в моем файле Excel . Если я проверю эти координаты, я увижу Sales_2014 , а в разделе «Тип» написано «Таблица» .

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

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

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Так что я могу продублировать этот запрос, чтобы получить данные за 2015 год . Для этого мне просто нужно щелкнуть правой кнопкой мыши Sales_2014 и выбрать «Дублировать».

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Затем я вернусь к шагу навигации.

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Я изменю этот год с 2014 на 2015.

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Я также переименую это здесь, в свойствах. Я назову его Продажи_2015.

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

На этот раз я продублирую Sales_2015.

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Затем я вернусь к шагу навигации и изменю год на 2016.

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Теперь у меня есть полные данные о продажах. Но эти запросы не должны загружаться в мою модель . Мне просто нужно щелкнуть правой кнопкой мыши по каждому из них и снять флажок «Включить загрузку» .

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

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

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Я назову эту папку Data Prep .

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Получение смещения дня

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

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

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

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Последняя дата в этом наборе данных — 31 декабря 2016 года .

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Теперь я создам новый запрос.

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

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

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Но мне действительно не нужна временная часть здесь. Мне нужна только часть даты этого значения.

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Итак, я собираюсь извлечь дату, используя Date.From .

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Затем из этого значения я вычту последнюю дату в моем наборе данных . Поскольку данные статические, я могу использовать внутреннее значение даты . Итак, это #date, а затем ссылка на 31 декабря 2016 года.

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Теперь мне нужно извлечь число из этой разницы . Поэтому я добавлю Number.From и закрою его скобками. Затем нажмите ввод.

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Я переименую это как DayOffset .

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Настройка динамических диапазонов дат

Мне также нужны динамические диапазоны дат для моей таблицы дат. Я начну с того, что щелкну правой кнопкой мыши папку Data Prep и создам новый пустой запрос.

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Затем я поработаю с датой начала моей таблицы дат.

Я всегда хочу, чтобы 1-й день года был моей датой начала. Поэтому я поставлю знак равенства и воспользуюсь функцией Date.StartOfYear .

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Поскольку мне нужно присвоить этому значение, я собираюсь компенсировать это с помощью Date.AddDays .

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Затем я снова буду использовать внутреннее значение даты и использовать 1-ю дату в моем наборе данных , то есть 1 июня 2014 года.

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Мне также нужно количество дней, которое я рассчитал в DayOffset , поэтому я добавлю его.

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Когда я нажимаю Enter, мне выдается 1 января 2017 года . Это будет первое свидание в моей таблице дат.

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Я переименую это в fxStartDate .

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

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

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Я создам новый пустой запрос.

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Затем переименуйте его в fxEndDate .

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Затем я собираюсь вставить синтаксис из моей даты начала .

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Вместо StartOfYear я изменю это на EndOfYear.

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

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

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Когда я нажимаю ввод, он возвращает 31 декабря 2020 года .

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Создание одной таблицы продаж

Я собираюсь объединить 3 таблицы в одну таблицу Sales . Для этого я создам новый запрос.

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Я назову это моей таблицей продаж .

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Затем я объединим Sales_2014, Sales_2015 и Sales_2016 в одну таблицу.

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

Я начну с Table.Combine .

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Для Table.Combine требуется список таблиц . Итак, я добавлю инициализатор списка , который представляет собой фигурные скобки , а затем назову 3 запроса . После этого нажмите Enter.

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Преобразование столбца даты заказа

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

Я начну с выбора двух числовых столбцов. Я могу использовать Индекс региона доставки и Индекс описания продукта . Со своей стороны, вы можете нажать Shift или Ctrl, чтобы выбрать оба столбца.

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

На вкладке «Преобразование» я выберу «Абсолютное значение» .

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Если я посмотрю на строку формул, она покажет функцию Table.TransformColumns . Это ключ к окончательному решению.

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

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

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Он ссылается на имя столбца в виде текста. Вот почему Индекс региона доставки был упомянут здесь в 1-м наборе.

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Затем он добавляет шаг преобразования .

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

То же самое делается в отдельном списке для столбца Product Description Index .

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Теперь я перейду к расширенному редактору .

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Мне не нужны абсолютные значения . Итак, первое, что я собираюсь сделать, это сместить мою дату . Для этого я создам функцию fxUpdateDate . Будет использоваться текущая дата, которую я введу как cDate .

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Затем я снова воспользуюсь функцией Date.AddDays , которая также использует cDate . Я также буду использовать DayOffset, созданный ранее.

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Все, что делает fxUpdateDate , это берет дату. Поэтому, если я передам это в функцию Table.TransformColumns , она начнет проверять каждую записанную дату.

Итак, если я работаю с 1-й строкой здесь, например, она будет рассматривать 1 июня 2014 года как cDate.

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

И каждый раз, когда функция вызывается, она будет добавлять тот DayOffset, который я создал.

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Теперь шаг Table.Transform отображается в Calculated Absolute Value .

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Сначала я переименую его и назову UpdateOrderDate .

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Этот шаг UpdateOrderDate включает в себя мой Table.TransformColumns, который равен источнику.

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

В первой таблице указан индекс региона доставки . Но нет необходимости преобразовывать это. Поэтому я собираюсь изменить этот 1-й столбец, указанный в столбце OrderDate .

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

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

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Поскольку я этого не хочу, я собираюсь изменить это на fxUpdateDate .

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Тип также не будет абсолютным значением, поэтому мне также нужно изменить эту часть.

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Я заменю это на свидание .

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

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

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

…так что это всего лишь одно преобразование для столбца OrderDate.

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Поскольку я переименовал шаг в «Расчетное абсолютное значение», мне также нужно изменить его в своем операторе in.

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Теперь он также показывает UpdateOrderDate .

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Таким образом, столбец OrderDate теперь будет вызывать эту функцию для каждой записи в Table.TransformColumns .

Глядя в столбец «Дата заказа», я вижу, что он был обновлен.

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

И если я отсортирую это в порядке убывания, в качестве текущей даты будет показано 7 июля 2020 года .

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Поэтому я собираюсь удалить этот шаг сортировки , потому что он мне действительно не нужен. Я сделал это только для того, чтобы проверить, была ли обновлена ​​текущая дата.

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Применение анализа времени с помощью M-кода

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

Итак, я пойду на . В M-code Showcase я расскажу о расширенной таблице дат .

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Прокрутите вверх до самого верха страницы и скопируйте весь код .

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Возвращаясь к моей модели, я собираюсь создать новый пустой запрос и вставить этот M-код в файл . Нажмите Готово.

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Я переименую этот запрос в fxCalendar .

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Для моих параметров я буду использовать 1 января для StartDate и 31 января для EndDate . Затем нажмите Призвать.

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Как только появится таблица, я переименую ее в Dates .

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Помните, что я уже создал даты начала и окончания, взглянув на 1-ю дату в образце набора данных и сместив ее на мой DayOffset. Таким образом, fxStartDate здесь отображается как 1 января 2017 года .

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Что касается fxEndDate, то он возвращает 31 декабря 2020 года .

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Я могу вернуться к таблице «Даты» и обновить там этот шаг «Исходный код» .

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

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

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Я собираюсь изменить это на fxStartDate .

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Я также собираюсь заменить второй параметр.

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Я вставлю fxEndDate .

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

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

Создайте постоянно обновляемый набор практических данных в LuckyTemplates

Я просто нажму «Закрыть и применить» , чтобы зафиксировать все эти шаги.

Создайте постоянно обновляемый набор практических данных в LuckyTemplates


Создание динамической таблицы запроса даты в LuckyTemplates: руководство по редактору запросов
Настройка динамической даты начала и окончания для таблиц даты Power Query
с использованием функции смещения в расширенных таблицах дат

Заключение

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

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

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

Мелисса

Leave a Comment

Расчет недельных продаж с помощью DAX в LuckyTemplates

Расчет недельных продаж с помощью DAX в LuckyTemplates

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

Что такое 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 для своих бизнес-отчетов.