Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Я покажу вам, як оновлювати набір практичних даних кожного разу, коли ви виконуєте оновлення . Ви можете переглянути повне відео цього підручника внизу цього блогу.

Якщо ви справді хочете вдосконалити свої навички DAX, найкращий шлях — використовувати його та застосувати на практиці. А для цього вам потрібен практичний набір даних, який допоможе візуалізувати й працювати над можливими сценаріями реального життя.

Проблема з практичними наборами даних полягає в тому, що дані зазвичай статичні . Для ефективної практики вам потрібно створити враження, що дані живі.

Зміст

Налаштування шляху до файлу для набору практичних даних

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

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Це дані, які мені потрібно оновити.

Розташування документа можна знайти тут, на панелі швидкого доступу.

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Мені це потрібно, щоб налаштувати параметр для мого шляху до файлу. Тому я збираюся скопіювати це розташування документа.

Праворуч від неї є точка доступу до панелі швидкого доступу.

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Коли я натискаю це, я отримую цей екран.

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Тому я перейду до пункту «Усі команди» , а потім виберу «Розташування документа» . Додайте його на панель швидкого доступу та натисніть OK.

Зараз я піду вщоб створити параметр, який зберігатиме шлях до мого файлу. Цей крок важливий, оскільки він дозволяє відновити всі запити всередині моделі, якщо інший користувач змінить розташування файлу.

Тому я створю новий параметр .

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Я збираюся назвати це FileLocation .

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

У розділі «Текст» я виберу «Текст» . А для поточного значення я вставлю в місце документа, яке скопіював раніше.

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Я збираюся створити новий запит.

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Тоді я виберу зразки даних, які використовуватиму як свій практичний набір даних.

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Тут з’явиться кілька різних таблиць, оскільки я маю дані про продажі за 2014, 2015 та 2016 роки. Мені просто потрібно вибрати першу, тобто Sales_2014 .

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

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

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

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

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Потім я зміню це на створений раніше параметр FileLocation .

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Потім я натисну «Готово», щоб зафіксувати ці зміни в запиті Sales_2014.

Створення папки підготовки даних

Переглядаючи прикладні кроки для запиту Sales_2014, я клацну крок навігації . Це показує мені, що він посилається на крок Source .

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Він також посилається на Sales_2014 , який показано як таблицю . Це також показує, що він витягує дані зі стовпця "Дані".

Тепер дозвольте мені поглянути на наступний крок Джерело .

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Крок «Джерело» показує мені все, що міститься в моєму файлі Excel . Якщо я перевірю ці координати, я побачу Sales_2014 , а під Kind написано Table .

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Коли я шукаю стовпець даних, він показує об’єкт Table , який було вилучено.

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Тому я можу скопіювати цей запит, щоб отримати дані за 2015 рік . Для цього мені потрібно просто клацнути правою кнопкою миші на Sales_2014 і вибрати Дублювати.

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Потім я повернуся до кроку навігації.

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Поміняю той рік з 2014 на 2015.

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Я також перейменую це тут у розділі «Властивості». Я назву це Sales_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

Потім із цього значення я збираюся відняти останню дату в моєму наборі даних . Оскільки дані статичні, я можу використовувати внутрішнє значення дати . Отже, це #дата, а потім посилання на 31 грудня 2016 року.

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Тепер мені потрібно отримати число з цієї різниці . Тому я додам Number.From і закрию його дужкою. Потім натисніть enter.

Створіть постійно оновлюваний набір практичних даних у 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

Коли я натискаю enter, повертається 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

Він робить те саме в окремому списку для стовпця Індекс опису продукту .

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Зараз я піду до .

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Я не хочу абсолютних значень . Тож перше, що я збираюся зробити, це змістити свою дату . Для цього я створю функцію під назвою fxUpdateDate . Він використовуватиме поточну дату, яку я введу як cDate .

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Потім я знову використаю функцію Date.AddDays , яка також використовує cDate . Я також використаю DayOffset, створений раніше.

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

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

Отже, якщо я, наприклад, працюю над першим рядком тут, він вважатиме 1 червня 2014 року cDate.

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

І кожного разу, коли функція викликається, вона додаватиме DayOffset, який я створив.

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Тепер крок Table.Transform відображається в Calculated Absolute Value .

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Я збираюся спочатку перейменувати його та назвати його UpdateOrderDate .

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Цей крок UpdateOrderDate включає мій Table.TransformColumns, який дорівнює Source.

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Початкова таблиця в списку є індексом регіону доставки . Але немає потреби це трансформувати. Тож я збираюся змінити цей перший стовпець на стовпець OrderDate .

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

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

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

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

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Тип також не буде абсолютним значенням, тому мені також потрібно змінити цю частину.

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Я зміню це на дату .

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Мені потрібна лише одна трансформація, тому я видалю другий список разом із кроком трансформації, який постачається з цим набором…

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

…тож це лише одне перетворення для стовпця OrderDate.

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Оскільки я перейменував крок на «Обчислене абсолютне значення», мені також потрібно змінити це в моєму операторі in.

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Тепер він також показує UpdateOrderDate .

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Отже, стовпець OrderDate тепер буде викликати цю функцію для кожного запису в Table.TransformColumns .

Переглядаючи стовпець «Дата замовлення», я бачу, що його оновлено.

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

І якщо відсортувати це в порядку спадання, поточною датою буде 7 липня 2020 року .

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

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

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Застосування інтелекту часу за допомогою коду M

Моя модель пов’язана з даними про продажі . Оскільки я збираюся провести деяку розвідку часу, мені знадобиться таблиця дат .

Тож я піду до. У презентації M-коду я переходжу до теми Розширена таблиця дат .

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

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

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Повертаючись до своєї моделі, я збираюся створити новий порожній запит і вставити цей код M у . Натисніть Готово.

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Я перейменую цей запит на fxCalendar .

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Для своїх параметрів я використовуватиму 1 січня для StartDate і 31 січня для EndDate . Потім натисніть Виклик.

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Коли таблиця з’явиться, я перейменую її на Дати .

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Пам’ятайте, що я вже створив початкову та кінцеву дати, переглянувши першу дату у зразку набору даних і компенсувавши її за допомогою DayOffset. Отже, fxStartDate тут відображається як 1 січня 2017 року .

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Що стосується fxEndDate, він повертає 31 грудня 2020 року .

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Я можу повернутися до таблиці «Дати» й оновити там також крок «Джерело» .

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Він перераховує параметри в порядку їх виклику. Перший параметр має вказувати дату початку .

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Я збираюся змінити це на fxStartDate .

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Я також збираюся замінити другий параметр.

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Я вставлю fxEndDate .

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

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

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates

Я просто натисну «Закрити та застосувати» , щоб зафіксувати всі ці кроки.

Створіть постійно оновлюваний набір практичних даних у LuckyTemplates




Висновок

Як я вже згадував раніше, наявність власного динамічного набору практичних даних безперечно підвищить рівень вашої гри, коли мова йде про LuckyTemplates. Це дозволяє вам практикувати свої навички та знання, вдаючи, що ви працюєте над реальним сценарієм.

Якщо ви хочете дізнатися більше про те, як зробити ваші початкові та кінцеві дати динамічними, особливо для практичного набору даних, який ви використовуєте, ви можете відвідати форум LuckyTemplates. Там багато розмов про це, а також про інші актуальні теми. Ви навіть можете знайти інші підходи, які підійдуть вам.

Все найкраще,

Меліса


Труба в R: підключення функцій за допомогою Dplyr

Труба в R: підключення функцій за допомогою Dplyr

У цьому підручнику ви дізнаєтесь, як об’єднати функції разом за допомогою оператора каналу dplyr мовою програмування R.

RANKX Deep Dive: функція LuckyTemplates DAX

RANKX Deep Dive: функція LuckyTemplates DAX

RANKX від LuckyTemplates дозволяє повернути рейтинг певного числа в кожному рядку таблиці, який є частиною списку чисел.

Вилучення тем і зображень LuckyTemplates із PBIX

Вилучення тем і зображень LuckyTemplates із PBIX

Дізнайтеся, як розібрати файл PBIX, щоб витягти теми та зображення LuckyTemplates із фону та використовувати їх для створення звіту!

Шпаргалка формул Excel: Посібник середнього рівня

Шпаргалка формул Excel: Посібник середнього рівня

Шпаргалка формул Excel: Посібник середнього рівня

Календарна таблиця LuckyTemplates: що це таке та як ним користуватися

Календарна таблиця LuckyTemplates: що це таке та як ним користуватися

Календарна таблиця LuckyTemplates: що це таке та як ним користуватися

Python у LuckyTemplates: як встановити та налаштувати

Python у LuckyTemplates: як встановити та налаштувати

Дізнайтеся, як інсталювати мову програмування Python у LuckyTemplates і як використовувати її інструменти для написання кодів і відображення візуальних елементів.

Розрахунок динамічної норми прибутку – легкий аналіз LuckyTemplates за допомогою DAX

Розрахунок динамічної норми прибутку – легкий аналіз LuckyTemplates за допомогою DAX

Дізнайтеся, як обчислювати динамічну маржу прибутку за допомогою LuckyTemplates і як ви можете отримати більше інформації, глибше досліджуючи результати.

Сортування стовпців таблиці дат у LuckyTemplates

Сортування стовпців таблиці дат у LuckyTemplates

Дізнайтеся, як правильно сортувати поля зі стовпців розширеної таблиці дат. Це хороша стратегія для складних полів.

Знайдіть свої найкращі продукти для кожного регіону в LuckyTemplates за допомогою DAX

Знайдіть свої найкращі продукти для кожного регіону в LuckyTemplates за допомогою DAX

У цій статті я поясню, як знайти найпопулярніші продукти для регіону за допомогою обчислень DAX у LuckyTemplates, включаючи функції TOPN і CALCULATE.

Вимір сміття: що це таке і чому це щось інше, але не сміття

Вимір сміття: що це таке і чому це щось інше, але не сміття

Дізнайтеся, як використовувати вимірювання сміття для позначок низької потужності, які ви хочете ефективно включити у свою модель даних.