Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

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

Зміст

Розуміння звіту даних у LuckyTemplates

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

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

Мета полягає в тому, щоб вибрати дату в стовпці «Дата» на розділювачі. Це означає, що після вибору дати в слайсері візуалізація таблиці відображатиме попередні дні з 7-денним інтервалом. У цьому прикладі в розділювачі дат вибрано 12 травня 2007 року.

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

Таблиця повинна відображати попередню з різницею в 7 днів між датами.

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

Вам також потрібно створити параметр «що якщо» , щоб динамічно відображати кількість дат на основі вибору. Якщо вибрати 3 , візуалізація таблиці має відображати лише 3 дати.

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

Відтворення таблиці та візуалізації

Першим кроком є ​​створення параметра what if . На робочому столі LuckyTemplates перейдіть на вкладку «Моделювання» та виберіть «Новий параметр» .

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

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

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

Після того, як ви натиснете OK, буде згенеровано роздільник. Перетворіть роздільник на список, натиснувши кнопку спадного меню та вибравши «Список».

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

Наступне, що потрібно зробити, це створити дубліковану таблицю дат, яка використовуватиметься як відключена таблиця дат. Перейдіть до редактора Power Query і дублюйте Dates .

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

Потім перейменуйте дублікат DisDate і натисніть «Закрити та застосувати».

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

Завантаження таблиць дат і роздільників у LuckyTemplates

Після завантаження дубльованої таблиці в модель LuckyTemplates створіть роздільник зі стовпцем дати з відключеної таблиці дат. Відкрийте таблицю DisDate і перетягніть Date на полотно.

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

Потім перетворіть візуалізацію на розріз.

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

Після цього змініть формат розділювача на List . Тоді візуалізація буде виглядати так.

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

Далі скопіюйте роздільник і змініть поле даних зі стовпцем Дата з таблиці Дати.

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

Вибір дати в розділювачі дат обмежить кількість видимих ​​рядків таблиці продажів у матриці. Якщо вибрати 14 березня 2005 року, матриця відображатиме лише цю дату.

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

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

Створення показників для зрізів виділення

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

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

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

Видаліть роздільник із таблицею дат і створіть перший захід. Міра отримає значення, вибране з розділювача «Дати для показу». Перша змінна, яку вам потрібно створити, це ValuesToShow . Далі прирівняйте його до значення Dates To Show і введіть RETURN , щоб повернути вибрані значення.

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

Перетягніть цю міру в матрицю. Якщо ви виберете 6 у розділі «Дати для показу», стовпець «Вимір» у матриці також дасть 6.

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

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

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

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

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

Створення розрахункової таблиці

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

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

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

Введіть змінну SelectedDate і прирівняйте її до функції DATE . Потім введіть дату в дужках. Далі створіть ще одну змінну, яка вказуватиме кількість дат, які ви хочете показати в матриці. Введіть DatesToShow і прирівняйте його до кількості дат.

Після цього створіть ще одну змінну, яка створить список дат із 7-денними інтервалами. Введіть список дат і скористайтеся функцією GENERATESERIES . це функція, яка генерує список чисел, передаючи кілька аргументів.

Для першого аргументу введіть SelectedDate – (DatesToShow * 7)  як початкове значення. Далі введіть SelectedDate як кінцеве значення. Для останнього аргументу введіть 7 для значення приросту або інтервалу між датами. Після цього закрийте функцію та введіть RETURN і DateList .

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

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

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

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

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

Щоб виправити це, ви можете змінити значення змінної DatesToShow на 5 або відняти 1 від 6. У цьому прикладі 1 віднімається від 6.

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

Після цього ви побачите, що значення закінчуються 31 березня.

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

Введення дат у контекст фільтра

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

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

У мірі додайте нову змінну та введіть DatesToShow . Потім прирівняйте цю змінну до синтаксису GENERATESERIES . Змініть змінні всередині синтаксису з SelectedDate на DisSelectedDate та DatesToShow на ValuesToShow .

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

Нарешті, створіть змінну для результату. Прирівняйте його до функції CALCULATE над Total Sales і DatesToShow, щоб додати всі дати, отримані з синтаксису GENERATESERIES , у контекст фільтра. Після цього введіть результат у функцію RETURN .

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

Тепер ви побачите, що матриця не відображатиме дати, які вимагає код DAX. Якщо ви перенесете в матрицю показник «Загальні продажі», ви побачите, що код повертає саму суму продажів.

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

Проблема з мірою полягає в тому, що дата, створена в синтаксисі GENERATESERIES , має походження даних із відключеною таблицею дат. Це означає, що таблиця «Дата» не пов’язана з таблицею «Продажі». Ось чому, коли список дат було застосовано в контексті фільтра, він не включав таблицю Продажі.

Вам потрібно використовувати функцію для створення віртуальних зв’язків і застосування контексту фільтра.

Використання TREATAS для виправлення дати в матриці LuckyTemplates

Значення, отримані з синтаксису GENERATESERIES, потрібно обробляти так, ніби вони були частиною вихідної таблиці Date. По суті, це створення лінії зі стовпцем Date таблиці Date, яка знаходиться в моделі даних.

Тому в змінній Result введіть TREATAS після таблиці Total Sales і надайте аргументи. Для першого аргументу вкажіть стовпець або таблицю, які не мають зв’язку. У цьому випадку використовується стовпець DatesToShow .

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

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

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

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

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

Використання функції KEEPFILTERS замість TREATAS

Щоб переконатися, що фільтр вставляється у фільтр без перевизначення існуючого контексту фільтра, потрібно скористатися функцією KEEPFILTERS . змінює семантику фільтрації CALCULATE .

Введіть KEEPFILTERS перед функцією TREATAS і підтвердьте вимірювання.

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

Тепер ви побачите, що значення в стовпці «Вимірювання» не повторюються.

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

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

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

Видаліть показник «Загальні продажі» з матриці та виберіть число в розділювачі «Дати для показу». Тоді ви побачите еквівалентну кількість дат, які відображаються в матриці.

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

Виправлення проблем із відсутніми датами в матриці LuckyTemplates

Ще одна проблема з цим звітом полягає в тому, що коли ви вибираєте 8 у розділювачі DatesToShow , матриця не змінюється.

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

Якщо вибрати 9 у розділювачі, матриця показуватиме лише 8 дат. Ви також помітите, що 17 березня відсутнє у списку дат.

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

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

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

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

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

Використання DAX для вирішення питання про відсутню дату в LuckyTemplates

Створіть лінійку даних, написавши TREATAS над стовпцями DatesToShow і Date таблиці Dates . Потім перевірте, чи всі дати, повернуті функцією TREATAS , включені в контекст фільтра.

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

Звідти розділіть виконання за кількома змінними. Змініть назву змінної з Result на CreateDataLineage , щоб показати, що вона зберігає результат TREATAS .

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

Потім створіть ще одну змінну, яка буде містити всі дати, видимі в контексті фільтра, що надходить із матриці. Введіть VisibleDate як назву змінної та використовуйте її замість стовпця Date .

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

Наступне, що потрібно зробити, це створити стовпець над результатом функції TREATAS , який міститиме суму продажів. Напишіть DatesWithSales як назву змінної та використовуйте замість змінної CreateDataLineage .

Усередині функції створіть новий стовпець і назвіть його Sales Amount із показником Total Sales у контексті рядка, щоб ініціювати перехід контексту.

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

Після цього створіть змінну, яка перевірятиме, чи всі дати, які зберігаються у змінній DatesWithSales , включено в контекст фільтра. Введіть IsDateInFilterContext як ім’я змінної та використовуйте функцію.

Звідти напишіть DatesWithSales як перший аргумент функції. Далі введіть Dates[Date] IN VisibleDate як другий аргумент, щоб перевірити, чи включено дату, що міститься в таблиці DatesWithSales , у змінну VisibleDate .

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

Остання змінна, яку вам потрібно створити, це Result . Використовуйте функцію над змінною IsDateInFilterContext . Напишіть [@Sales Amount] + 0 , щоб включити дні, які раніше не були включені.

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

Після всього цього ви побачите в матриці відсутню дату, 17 березня.

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

Використання +0 у вихідній мірі

Попередні кроки показали, як побудувати показник, щоб включити всі дати, які не мають транзакцій, у таблицю фактів. Тепер, якщо ви використовуєте + 0 у вихідній мірі, яку ви створили, усі значення в стовпці «Міра» будуть 0.

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

Виберіть конкретну дату в LuckyTemplates за допомогою розрахунку DAX

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

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

Це причина, чому вам потрібно переписати міру таким чином, щоб вам потрібно було лише додати 0 до дат, видимих ​​у контексті фільтра та включених у змінну DatesToShow .




Висновок

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


Змініть формати дати за допомогою редактора 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

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