Виберіть конкретну дату в 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 мають бути написані таким чином, щоб можна було легко отримати результати.

Leave a Comment

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

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