Виберіть конкретну дату в 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

Як створити теплову карту LuckyTemplates

Теплова карта LuckyTemplates — це тип візуалізації, який використовується для відображення щільності даних на карті. У цьому підручнику я розповім, як ми можемо створити один – не пропустіть!

Створення діаграми Парето в LuckyTemplates – Advanced DAX

Створення діаграми Парето в LuckyTemplates – Advanced DAX

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

Власна гістограма в LuckyTemplates: різновиди та модифікація

Власна гістограма в LuckyTemplates: різновиди та модифікація

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

Статичні результати Power Automate: огляд

Статичні результати Power Automate: огляд

Дізнайтеся, як працює функція Power Automate Static Results і чому її корисно додати до найкращих методів створення блок-схем.

Підручник LuckyTemplates Python: як перекладати тексти

Підручник LuckyTemplates Python: як перекладати тексти

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

Створіть діаграму Ганта в конструкторі звітів LuckyTemplates

Створіть діаграму Ганта в конструкторі звітів LuckyTemplates

У цьому підручнику ви дізнаєтеся, як використовувати Gauge Bullet Graph для створення діаграми Ганта в LuckyTemplates Report Builder.

Створіть тривимірну точкову діаграму за допомогою Python у LuckyTemplates

Створіть тривимірну точкову діаграму за допомогою Python у LuckyTemplates

У цьому підручнику ви дізнаєтесь, як створити тривимірну (3D) точкову діаграму за допомогою Python у LuckyTemplates.

Ефективне звітування LuckyTemplates – огляд сеансу та завантаження ресурсу

Ефективне звітування LuckyTemplates – огляд сеансу та завантаження ресурсу

Ефективне звітування LuckyTemplates – огляд сеансу та завантаження ресурсу

Аналіз нових клієнтів за допомогою LuckyTemplates – наступна подія лише для учасників

Аналіз нових клієнтів за допомогою LuckyTemplates – наступна подія лише для учасників

Аналіз нових клієнтів за допомогою LuckyTemplates – наступна подія лише для учасників