Він має дуже специфічне використання, яке може бути корисним, якщо ви хочете спростити модель даних і формули DAX.
У цьому підручнику я покажу вам, як ми можемо створити віртуальний зв’язок у формулі. Вам не потрібно створювати жодних фізичних зв’язків у вашій моделі даних. Ви можете фактично зв’язати дві таблиці або два стовпці з двох різних таблиць, використовуючи це.
Цей приклад є частиною навчального саміту, який я проводив щодо бюджетування доходів з членами LuckyTemplates та іншими учасниками.
Ця техніка, яку я вам покажу, дуже важлива під час керування бюджетами порівняно з фактичними результатами в LuckyTemplates. Ви можете ефективно створити цей аналіз, поєднавши модель і правильні обчислення DAX.
Тому тут ми хочемо проаналізувати, як це відбувається з часом, і ми показуємо це сукупно. Ми також можемо вибрати будь-яку конкретну територію, окремий елемент або таблицю пошуку та зосередитися на ній і побачити, як ми працюємо з нашими бюджетами.
Цікавим у цьому підручнику є те, як структурована модель . Ви можете ефективно структурувати це таким чином, розуміючи, що роблять віртуальні відносини всередині LuckyTemplates . Отже, перш ніж перейти до розрахунків LuckyTemplates TREATAS, давайте подивимося на модель даних.
Наша модель тут досить детальна, але для цього підручника давайте зосередимося на віртуальних таблицях. Якщо ви подивіться на таблицю регіональних бюджетів, ви помітите, що вона не має фізичного зв’язку ні з чим.
Такі віртуальні столи зроблять за нас важку роботу. Вони створять для нас правильні фільтри відповідно до обчислень, які ми хочемо показати на основі нашого вибору.
Придивившись уважніше до наших регіональних бюджетів, ви побачите, що вони розбиті по містах. У нас є фактичний бюджет на 2018 рік по містах . Це було створено за допомогою формули, але я не буду вдаватися в це зараз, оскільки це тема іншого підручника.
Але якщо ви подивитеся на цю таблицю, у нас є фактична інформація, яка відбувається щодня, і ці результати є щорічними.
Ми повинні мати можливість розбити їх і розподілити протягом року. Отже, у нас є ще одна таблиця, яку я назвав таблицею чутливості бюджету .
Щоб розподілити річний бюджет, я вказав для кожного місяця коефіцієнт чутливості. Це в сумі дорівнюватиме одиниці, тому що бюджетна чутливість розбиватиметься на сто відсотків на окремі частини на місяць.
І якщо ми повернемося до нашої моделі, ви побачите, що ця таблиця чутливості до бюджету також ні з чим не пов’язана . Немає фізичних стосунків.
Ця техніка значно підвищить ефективність вашої моделі. У вас немає скрізь черги. Вам не потрібно створювати додаткові таблиці, щоб створити правильні зв’язки. Ми можемо зробити це віртуально за допомогою TREATAS.
Отже, з точки зору налаштування, у нас є бюджети на річному рівні, і ми можемо розбити їх на місячний рівень, оскільки ми маємо чутливість. Тепер нам потрібно розрахувати кількість на щоденний рівень, оскільки саме так ми обчислюємо загальну суму .
Використання TREATAS для створення віртуальних стосунків
Перш за все, нам потрібно створити обчислення, яке можна відфільтрувати за чимось у таблиці регіону. Якщо ви можете зрозуміти, як працює LuckyTemplates TREATAS, ви будете у чудовому місці, щоб спростити свої моделі та створити ці віртуальні зв’язки.
Тож у нашій першій формулі, річному бюджеті , ми підсумовуємо загальну річну суму , але ми також можемо відфільтрувати загальну річну суму за чимось у таблиці міста чи регіону . Це тому, що ми пов’язуємо стовпець «Місто» в таблиці «Регіональні бюджети» зі стовпцем «Місто» в таблиці «Регіони».
Але в цьому випадку ми маємо лише річну інформацію. Нам потрібно розбити його за місяцями, і тут з’являється чутливість. Я створив інший показник під назвою « Місячні бюджети на 2018 рік ».
Тут ми створюємо віртуальний зв’язок між таблицею «Дата» , яка є стовпцем «Короткий місяць» , і стовпцем «Назва місяця» в таблиці «Чутливість до бюджету» .
Якщо в певному контексті це може бути як місяць і рік, ця чутливість до бюджету буде відфільтрована на основі цього. Це саме те, що міститься в логіці IF цього показника. Потім річний бюджет множиться на BudgetAllocation .
Нарешті, ми розіб’ємо його за днями, щоб отримати загальну суму. Оскільки у нас є місячна інформація, логічно все, що нам потрібно зробити, це помножити або розділити місячну інформацію на кількість днів у певному місяці. Це розкладе його на щоденному рівні.
Перша частина цієї формули щоденного рівня, Щоденні бюджети на 2018 рік , дуже схожа на те, що ми зробили з місячним рівнем. Потім ми визначаємо, скільки днів у будь-якому конкретному місяці чи контексті ми можемо перебувати , і це те, що відбувається в нашій змінній ( VAR ) для DaysInMonth.
Ми використовуємо COUNTROWS у таблиці Dates , видаляємо контекст у Dates за допомогою, але потім додайте його назад для місяця та року за допомогою. Тож кажуть, що якщо ми в січні, то це буде 31 день. Потім ми використовуємо ту саму логіку IF, але множимо її на 1, а потім ділимо на 31 (для січня).
Висновок
Віртуальні відносини можна використовувати різними способами. Безумовно, існує багато інших сценаріїв, де цю техніку можна використати, але це дуже гарний приклад. Ми створили віртуальні зв’язки всередині LuckyTemplates за допомогою функції TREATAS.
Найлогічнішою причиною використання цієї функції та причиною, чому я використовую її досить активно в багатьох моделях, які я розробляю, є те, що вона дійсно спрощує все, що ви робите у серверній частині вашої моделі; у моделі даних вашого звіту LuckyTemplates.
Замість того, щоб мати низку зв’язків, які можуть ускладнити вашу розробку, функція TREATAS може справді спростити аспект моделі даних і зв’язки, які можна вбудувати у ваші формули DAX.