Порада LuckyTemplates: як порівняти перші N робочих днів

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

TJ Henneman хотів порівняти перші 5 оплачуваних днів поточного місяця з першими 5 оплачуваними днями попереднього місяця, а потім з 10-м, 15-м і 20-м днями. Зверніть увагу, що він хоче дивитися лише на оплачувані дні, тому сюди не входять вихідні та святкові дні. Ви можете переглянути його допис.

Порада LuckyTemplates: як порівняти перші N робочих днів

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

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

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

Зміст

Наша модель даних

Наша модель даних використовує нашу розширену таблицю дат і серію таблиць розмірів. У нас також є таблиця продажів із частковими даними за три роки в перший рік, повними даними в другий рік і частковими даними в третій рік. Нарешті, ми також маємо a.

Порада LuckyTemplates: як порівняти перші N робочих днів

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

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

Якщо ми подивимося на наші дані, ви побачите, що в певний день ми маємо різні замовлення. Мета полягає в тому, щоб пронумерувати все, що починається з 1 квітня, як наш перший робочий день, 2 квітня як наш другий робочий день, 3 квітня як наш третій робочий день і так далі. Ми пронумеруємо це від 1 до N робочих днів для кожного місяця без урахування вихідних і свят.

Порада LuckyTemplates: як порівняти перші N робочих днів

Створення дублюючої таблиці

Щоб розпочати роботу, нам потрібно створити дублікат цієї таблиці, щоб ми могли агрегувати загальний обсяг продажів і перенести його на рівень індивідуального спостереження. Ми назвемо цю повторювану таблицю Sales Aggregated .

Порада LuckyTemplates: як порівняти перші N робочих днів

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

Перше, що потрібно зробити, це використати Group By у стовпці OrderDate . Натисніть кнопку «Додатково» , оскільки вона дасть нам повну картину того, що ми тут робимо. Ми додамо загальну кількість продажів за день як нову назву стовпця, і це буде сума загальної суми нашого рядка.

Порада LuckyTemplates: як порівняти перші N робочих днів

Тепер ми маємо кожну дату (перший стовпець) і загальний обсяг продажів за цей день (другий стовпець).

Порада LuckyTemplates: як порівняти перші N робочих днів

Об’єднання таблиці дат

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

Ми об’єднаємо нашу таблицю Dates і зв’яжемо OrderDate з Date . У нижній частині ми бачимо, що вибір відповідає кожному рядку таблиці, як і повинно бути.

Порада LuckyTemplates: як порівняти перші N робочих днів

Поле, яке нас цікавить, це IsBusinessDay .

Порада LuckyTemplates: як порівняти перші N робочих днів

Це основне поле, за яким ми будемо групувати, а потім використовувати поля «Місяць і рік» і «МісяцьРік» .

Порада LuckyTemplates: як порівняти перші N робочих днів

Нам також потрібно перевірити DayofWeekName , щоб переконатися, що ми відфільтровуємо правильні дні.

Порада LuckyTemplates: як порівняти перші N робочих днів

Як тільки ми натиснемо кнопку OK , ми отримаємо саме те, що нам потрібно.

Порада LuckyTemplates: як порівняти перші N робочих днів

Ми також повинні переконатися, що наша дата замовлення відсортована в порядку зростання.

Порада LuckyTemplates: як порівняти перші N робочих днів

Потім ми повертаємось і створюємо другу Group By .

Порада LuckyTemplates: як порівняти перші N робочих днів

Цього разу ми натиснемо кнопку «Додатково» , згрупуємо «Місяць і рік» , а потім додамо друге групування.

Порада LuckyTemplates: як порівняти перші N робочих днів

Друге групування призначене для IsBusinessDay , тому ми можемо пронумерувати ті, де робочі дні є справжніми.

Порада LuckyTemplates: як порівняти перші N робочих днів

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

Порада LuckyTemplates: як порівняти перші N робочих днів

Це має дати нам вкладені таблиці , де ми можемо бачити таблицю для істини та таблицю для хибності для кожного місяця.

Порада LuckyTemplates: як порівняти перші N робочих днів

Порада LuckyTemplates: як порівняти перші N робочих днів

Створення спеціального стовпця

Далі нам потрібно створити спеціальний стовпець , щоб додати необхідну кількість робочих днів.

Порада LuckyTemplates: як порівняти перші N робочих днів

Ми будемо використовувати функцію під назвою Table.AddIndexColumn , яка працюватиме з таблицею AllRows , і ми назвемо її Day Index . Ми хочемо, щоб індекс починався з 1 і збільшувався на 1 з кожним новим робочим днем.

Порада LuckyTemplates: як порівняти перші N робочих днів

Потім ми можемо видалити перші три стовпці та розширити наш четвертий спеціальний стовпець.

Порада LuckyTemplates: як порівняти перші N робочих днів

Порада LuckyTemplates: як порівняти перші N робочих днів

Якщо ми подивимося на результат, він дає нам індекс дня, який підраховує робочі дні (true), а потім підраховує вихідні та святкові дні кожного місяця (false). Далі ми маємо перевірити, чи вони мають належний тип поля.

Порада LuckyTemplates: як порівняти перші N робочих днів

Повернемося до таблиці продажів. Ми об’єднаємо таблицю Aggregate, яку щойно створили, з таблицею Sales.

Порада LuckyTemplates: як порівняти перші N робочих днів

Ми об’єднаємо їх у OrderDate . Ви можете побачити внизу, що він відповідає всім рядкам першої таблиці.

Порада LuckyTemplates: як порівняти перші N робочих днів

Коли ми розгорнемо стовпець Sales Agg, виберіть нові поля, які ми щойно додали: стовпці Month & Year , DayOfWeekName , MonthnYear , IsBusinessDay та DayIndex .

Давайте також очистимо наші дані, перш ніж натиснути «Закрити та застосувати» . Давайте перемістимо таблицю Sales Agg у наш розділ Data Prep , а потім вивантажимо цю таблицю, оскільки вона нам не знадобиться в моделі даних. Потім натисніть «Закрити та застосувати» .

Наша підготовча робота над запитом потужності завершена.

Порада LuckyTemplates: як порівняти перші N робочих днів

Створення параметра What-If

Пам’ятайте, що в оригінальному завданні ми хочемо змінити кількість днів, які ми дивимося, від 5 до 10 і від 15 до 20. Я думаю, що найкращий спосіб зробити це за допомогою нового параметра «що-якщо » .

Ми назвемо параметр «що-якщо » First N Business Days , а його типом даних буде ціле число. Мінімальне значення становить 1, а максимальне — 20. Тоді ми встановлюємо за замовчуванням значення 5, яке є першим значенням, яке бажає користувач.

Порада LuckyTemplates: як порівняти перші N робочих днів

Тепер у нас є зріз, який автоматично створює показник урожаю, щоб зафіксувати значення зрізу.

Порада LuckyTemplates: як порівняти перші N робочих днів

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

Порада LuckyTemplates: як порівняти перші N робочих днів

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

Порада LuckyTemplates: як порівняти перші N робочих днів

Створення показника кількості робочих днів

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

Порада LuckyTemplates: як порівняти перші N робочих днів

Ми назвемо цей новий показник Total Sales N Bus Days . Ми почнемо з функції, оскільки ми точно змінюємо контекст, і з нашого вимірювання загальних продажів. Ми збираємося відфільтрувати це за допомогою таблиці Sales.

Порада LuckyTemplates: як порівняти перші N робочих днів

Наступним кроком буде написання умов, які ми хочемо врахувати для повзунка. У нас є індекс продажів, який ми створили в Power Query, і ми хочемо, щоб він був меншим або дорівнював значенню перших N робочих днів, яке є зібраним значенням зрізу.

Наприклад, якщо повзунок стоїть на 5, нам потрібні всі дні таблиці Sales, у яких індекс дня менший або дорівнює 5.

Порада LuckyTemplates: як порівняти перші N робочих днів

А потім хочемо вилучити неробочі дні. Ми будемо посилатися на таблицю Date і використовувати поле IsBusinessDay. Ми будемо дивитися лише на той результат, який є ІСТИННИМ.

Порада LuckyTemplates: як порівняти перші N робочих днів

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

Порада LuckyTemplates: як порівняти перші N робочих днів

Давайте опустимо нову міру в нашу таблицю.

Порада LuckyTemplates: як порівняти перші N робочих днів

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

Порада LuckyTemplates: як порівняти перші N робочих днів

Висновок

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

У деяких із наших майбутніх посібників ми розглянемо рішення DAX і запровадимо візуалізацію скролера KPI.

Якщо вам сподобався вміст, розглянутий у цьому посібнику, не забудьте підписатися на телеканал LuckyTemplates .


Змініть формати дати за допомогою редактора Power Query

Змініть формати дати за допомогою редактора Power Query

У цьому посібнику ви дізнаєтеся, як перетворити текст у формат дати за допомогою редактора Power Query в LuckyTemplates.

Power Query: об’єднайте файли з кількох папок

Power Query: об’єднайте файли з кількох папок

Дізнайтеся, як об’єднати файли з кількох папок у мережі, робочому столі, OneDrive або SharePoint за допомогою Power Query.

Обчисліть місячне ковзне середнє з початку року (з початку року) у LuckyTemplates

Обчисліть місячне ковзне середнє з початку року (з початку року) у LuckyTemplates

Цей підручник пояснює, як обчислити місячне ковзне середнє на базі даних з початку року за допомогою функцій AVERAGEX, TOTALYTD та FILTER у LuckyTemplates.

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

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

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

Мобільні звіти LuckyTemplates. Поради та методи

Мобільні звіти LuckyTemplates. Поради та методи

У цьому короткому посібнику розповідається про функцію мобільних звітів LuckyTemplates. Я збираюся показати вам, як ви можете ефективно створювати звіти для мобільних пристроїв.

Звіти про професійну аналітику послуг у LuckyTemplates

Звіти про професійну аналітику послуг у LuckyTemplates

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

Оновлення Microsoft Power Platform | Microsoft Ignite 2021

Оновлення Microsoft Power Platform | Microsoft Ignite 2021

Ознайомтеся з основними оновленнями для Power Apps і Power Automate, а також їх перевагами та наслідками для Microsoft Power Platform.

Загальні функції SQL: огляд

Загальні функції SQL: огляд

Відкрийте для себе деякі поширені функції SQL, які ми можемо використовувати, наприклад String, Date і деякі розширені функції для обробки та маніпулювання даними.

Створення шаблону LuckyTemplates: керівництво та поради

Створення шаблону LuckyTemplates: керівництво та поради

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

Параметри полів і малі кратні в LuckyTemplates

Параметри полів і малі кратні в LuckyTemplates

У цьому блозі ми продемонструємо, як шарувати параметри поля з малими кратними, щоб створити неймовірно корисну інформацію та візуальні ефекти.