Змініть формати дати за допомогою редактора Power Query
У цьому посібнику ви дізнаєтеся, як перетворити текст у формат дати за допомогою редактора Power Query в LuckyTemplates.
Я покажу вам, як оновлювати набір практичних даних кожного разу, коли ви виконуєте оновлення . Ви можете переглянути повне відео цього підручника внизу цього блогу.
Якщо ви справді хочете вдосконалити свої навички DAX, найкращий шлях — використовувати його та застосувати на практиці. А для цього вам потрібен практичний набір даних, який допоможе візуалізувати й працювати над можливими сценаріями реального життя.
Проблема з практичними наборами даних полягає в тому, що дані зазвичай статичні . Для ефективної практики вам потрібно створити враження, що дані живі.
Зміст
Налаштування шляху до файлу для набору практичних даних
Для моїх зразків даних у мене є файл Excel, що містить дані про продажі за 2014, 2015 та 2016 роки.
Це дані, які мені потрібно оновити.
Розташування документа можна знайти тут, на панелі швидкого доступу.
Мені це потрібно, щоб налаштувати параметр для мого шляху до файлу. Тому я збираюся скопіювати це розташування документа.
Праворуч від неї є точка доступу до панелі швидкого доступу.
Коли я натискаю це, я отримую цей екран.
Тому я перейду до пункту «Усі команди» , а потім виберу «Розташування документа» . Додайте його на панель швидкого доступу та натисніть OK.
Зараз я піду вщоб створити параметр, який зберігатиме шлях до мого файлу. Цей крок важливий, оскільки він дозволяє відновити всі запити всередині моделі, якщо інший користувач змінить розташування файлу.
Тому я створю новий параметр .
Я збираюся назвати це FileLocation .
У розділі «Текст» я виберу «Текст» . А для поточного значення я вставлю в місце документа, яке скопіював раніше.
Я збираюся створити новий запит.
Тоді я виберу зразки даних, які використовуватиму як свій практичний набір даних.
Тут з’явиться кілька різних таблиць, оскільки я маю дані про продажі за 2014, 2015 та 2016 роки. Мені просто потрібно вибрати першу, тобто Sales_2014 .
Тепер, коли я вибрав дані Sales_2014, настав час змінити це жорстко закодоване розташування файлу на динамічне розташування файлу .
Я зайду в розширений редактор і виберу все, що пов’язано з розташуванням файлу .
Потім я зміню це на створений раніше параметр FileLocation .
Потім я натисну «Готово», щоб зафіксувати ці зміни в запиті Sales_2014.
Створення папки підготовки даних
Переглядаючи прикладні кроки для запиту Sales_2014, я клацну крок навігації . Це показує мені, що він посилається на крок Source .
Він також посилається на Sales_2014 , який показано як таблицю . Це також показує, що він витягує дані зі стовпця "Дані".
Тепер дозвольте мені поглянути на наступний крок Джерело .
Крок «Джерело» показує мені все, що міститься в моєму файлі Excel . Якщо я перевірю ці координати, я побачу Sales_2014 , а під Kind написано Table .
Коли я шукаю стовпець даних, він показує об’єкт Table , який було вилучено.
Тому я можу скопіювати цей запит, щоб отримати дані за 2015 рік . Для цього мені потрібно просто клацнути правою кнопкою миші на Sales_2014 і вибрати Дублювати.
Потім я повернуся до кроку навігації.
Поміняю той рік з 2014 на 2015.
Я також перейменую це тут у розділі «Властивості». Я назву це Sales_2015.
Цього разу я дублюю Sales_2015.
Потім я повернусь до кроку навігації та зміню рік на 2016.
Тепер я маю повні дані про продажі. Але ці запити не слід завантажувати в мою модель . Мені просто потрібно клацнути правою кнопкою миші на кожному з них і зняти прапорець Увімкнути завантаження .
Тепер я збираюся вибрати всі запити та помістити їх в одну папку, щоб зробити все більш упорядкованим.
Я назву цю папку Data Prep .
Отримання компенсації дня
Зразок даних у розділі «Підготовка даних» буде статичним . Це означає, що перша та остання дати ніколи не зміняться .
Тож я перейду до Sales_2016 і відсортую стовпець «Дата замовлення» в порядку спадання , щоб отримати останню дату з цього набору даних .
Остання дата в цьому наборі даних – 31 грудня 2016 року .
Тепер я створю новий запит.
Потім я перевірю, яке зміщення днів від останньої дати в наборі даних до сьогодні. Це означає, що мені потрібно дізнатися, що таке сьогодні. Для цього я скористаюся функцією DateTime.FixedLocalNow . Це дасть мені дату та час з машини, на якій я працюю.
Але мені тут не дуже потрібна частина часу. Мені потрібна лише частина дати цього значення.
Отже, я збираюся отримати дату за допомогою Date.From .
Потім із цього значення я збираюся відняти останню дату в моєму наборі даних . Оскільки дані статичні, я можу використовувати внутрішнє значення дати . Отже, це #дата, а потім посилання на 31 грудня 2016 року.
Тепер мені потрібно отримати число з цієї різниці . Тому я додам Number.From і закрию його дужкою. Потім натисніть enter.
Я перейменую це на DayOffset .
Налаштування динамічних діапазонів дат
Мені також потрібні динамічні діапазони дат для моєї таблиці дат. Я почну з того, що клацну правою кнопкою миші папку Data Prep і створю новий порожній запит.
Потім я попрацюю над датою початку своєї таблиці дат.
Я завжди хочу 1-й день року як дату початку. Тож я поставлю знак рівності та використаю функцію Date.StartOfYear .
Оскільки мені потрібно надати цьому значення, я збираюся компенсувати це за допомогою Date.AddDays .
Тоді я знову використаю власне значення дати та використаю 1-шу дату в своєму наборі даних , тобто 1 червня 2014 року.
Мені також потрібна кількість днів, яку я розрахував у моєму DayOffset , тому я збираюся додати це.
Коли я натискаю клавішу Enter, з’являється 1 січня 2017 року . Це буде перша дата в моїй таблиці дат.
Я перейменую це на fxStartDate .
Тепер я можу встановити дату завершення. Я збираюся скопіювати цей синтаксис, який використовував у даті початку.
Я створю новий порожній запит.
Потім перейменуйте його на fxEndDate .
Потім я збираюся вставити синтаксис із моєї дати початку .
Замість StartOfYear я зміню це на EndOfYear.
Я також збираюся використовувати останню дату мого набору даних , тобто 31 грудня .
Коли я натискаю enter, повертається 31 грудня 2020 року .
Створення єдиної таблиці продажів
Я збираюся об’єднати 3 таблиці в одну таблицю Sales . Для цього я створю новий запит.
Я називатиму це моєю таблицею продажів .
Потім я об’єднаю Sales_2014, Sales_2015 і Sales_2016 в одну таблицю.
Я знаю, що ви можете зробити це через стрічку, але також є можливість зробити це безпосередньо в рядку формул. Я виберу 2й варіант.
Я почну з Table.Combine .
Table.Combine вимагає списку таблиць . Тож я додам ініціалізатор списку , тобто ті фігурні дужки , а потім дам назву 3 запитам . Після цього натисніть enter.
Перетворення стовпця дати замовлення
Тепер, коли у мене є більшість необхідних мені елементів, я збираюся згенерувати ключову частину синтаксису, яку я буду використовувати пізніше для завершення мого динамічного набору практичних даних.
Я почну з вибору двох стовпців із числами. Я можу використовувати Індекс регіону доставки та Індекс опису товару . Зі свого боку, ви можете натиснути Shift або Ctrl, щоб вибрати обидва стовпці.
На вкладці «Трансформація» я виберу «Абсолютне значення» .
Якщо я подивлюся на рядок формул, він покаже функцію Table.TransformColumns . Це ключ до остаточного рішення.
Функція отримує список списків трансформацій . Як бачите, тут є 2 списки, вкладені один в одного.
Він посилається на назву стовпця як текст. Ось чому тут у 1-му наборі посилалися на Індекс регіону доставки .
Потім додається крок трансформації .
Він робить те саме в окремому списку для стовпця Індекс опису продукту .
Зараз я піду до .
Я не хочу абсолютних значень . Тож перше, що я збираюся зробити, це змістити свою дату . Для цього я створю функцію під назвою fxUpdateDate . Він використовуватиме поточну дату, яку я введу як cDate .
Потім я знову використаю функцію Date.AddDays , яка також використовує cDate . Я також використаю DayOffset, створений раніше.
Все, що робить fxUpdateDate , це бере дату. Отже, якщо я передам це у функцію Table.TransformColumns , вона почне перевіряти кожну записану дату.
Отже, якщо я, наприклад, працюю над першим рядком тут, він вважатиме 1 червня 2014 року cDate.
І кожного разу, коли функція викликається, вона додаватиме DayOffset, який я створив.
Тепер крок Table.Transform відображається в Calculated Absolute Value .
Я збираюся спочатку перейменувати його та назвати його UpdateOrderDate .
Цей крок UpdateOrderDate включає мій Table.TransformColumns, який дорівнює Source.
Початкова таблиця в списку є індексом регіону доставки . Але немає потреби це трансформувати. Тож я збираюся змінити цей перший стовпець на стовпець OrderDate .
Тут також зазначено, що перетворення відбуватиметься в абсолютних значеннях.
Оскільки я цього не хочу, я збираюся змінити це на fxUpdateDate .
Тип також не буде абсолютним значенням, тому мені також потрібно змінити цю частину.
Я зміню це на дату .
Мені потрібна лише одна трансформація, тому я видалю другий список разом із кроком трансформації, який постачається з цим набором…
…тож це лише одне перетворення для стовпця OrderDate.
Оскільки я перейменував крок на «Обчислене абсолютне значення», мені також потрібно змінити це в моєму операторі in.
Тепер він також показує UpdateOrderDate .
Отже, стовпець OrderDate тепер буде викликати цю функцію для кожного запису в Table.TransformColumns .
Переглядаючи стовпець «Дата замовлення», я бачу, що його оновлено.
І якщо відсортувати це в порядку спадання, поточною датою буде 7 липня 2020 року .
Тож я збираюся видалити цей крок сортування , тому що він мені насправді не потрібен. Я зробив це лише для того, щоб перевірити, чи поточна дата також була оновлена.
Застосування інтелекту часу за допомогою коду M
Моя модель пов’язана з даними про продажі . Оскільки я збираюся провести деяку розвідку часу, мені знадобиться таблиця дат .
Тож я піду до. У презентації M-коду я переходжу до теми Розширена таблиця дат .
Прокрутіть до самого верху сторінки та скопіюйте весь код .
Повертаючись до своєї моделі, я збираюся створити новий порожній запит і вставити цей код M у . Натисніть Готово.
Я перейменую цей запит на fxCalendar .
Для своїх параметрів я використовуватиму 1 січня для StartDate і 31 січня для EndDate . Потім натисніть Виклик.
Коли таблиця з’явиться, я перейменую її на Дати .
Пам’ятайте, що я вже створив початкову та кінцеву дати, переглянувши першу дату у зразку набору даних і компенсувавши її за допомогою DayOffset. Отже, fxStartDate тут відображається як 1 січня 2017 року .
Що стосується fxEndDate, він повертає 31 грудня 2020 року .
Я можу повернутися до таблиці «Дати» й оновити там також крок «Джерело» .
Він перераховує параметри в порядку їх виклику. Перший параметр має вказувати дату початку .
Я збираюся змінити це на fxStartDate .
Я також збираюся замінити другий параметр.
Я вставлю fxEndDate .
Коли я натискаю Enter, трансформація завершена. Тепер у мене є повністю оновлений набір практичних даних, який завжди залишатиметься актуальним.
Я просто натисну «Закрити та застосувати» , щоб зафіксувати всі ці кроки.
Висновок
Як я вже згадував раніше, наявність власного динамічного набору практичних даних безперечно підвищить рівень вашої гри, коли мова йде про LuckyTemplates. Це дозволяє вам практикувати свої навички та знання, вдаючи, що ви працюєте над реальним сценарієм.
Якщо ви хочете дізнатися більше про те, як зробити ваші початкові та кінцеві дати динамічними, особливо для практичного набору даних, який ви використовуєте, ви можете відвідати форум LuckyTemplates. Там багато розмов про це, а також про інші актуальні теми. Ви навіть можете знайти інші підходи, які підійдуть вам.
Все найкраще,
Меліса
У цьому посібнику ви дізнаєтеся, як перетворити текст у формат дати за допомогою редактора Power Query в LuckyTemplates.
Дізнайтеся, як об’єднати файли з кількох папок у мережі, робочому столі, OneDrive або SharePoint за допомогою Power Query.
Цей підручник пояснює, як обчислити місячне ковзне середнє на базі даних з початку року за допомогою функцій AVERAGEX, TOTALYTD та FILTER у LuckyTemplates.
Дізнайтеся, чому важлива спеціальна таблиця дат у LuckyTemplates, і вивчіть найшвидший і найефективніший спосіб це зробити.
У цьому короткому посібнику розповідається про функцію мобільних звітів LuckyTemplates. Я збираюся показати вам, як ви можете ефективно створювати звіти для мобільних пристроїв.
У цій презентації LuckyTemplates ми розглянемо звіти, що демонструють професійну аналітику послуг від фірми, яка має кілька контрактів і залучених клієнтів.
Ознайомтеся з основними оновленнями для Power Apps і Power Automate, а також їх перевагами та наслідками для Microsoft Power Platform.
Відкрийте для себе деякі поширені функції SQL, які ми можемо використовувати, наприклад String, Date і деякі розширені функції для обробки та маніпулювання даними.
У цьому підручнику ви дізнаєтеся, як створити свій ідеальний шаблон LuckyTemplates, налаштований відповідно до ваших потреб і вподобань.
У цьому блозі ми продемонструємо, як шарувати параметри поля з малими кратними, щоб створити неймовірно корисну інформацію та візуальні ефекти.