Home
» Power BI
»
Різниця між ВСІМИ та ВСІМИ ВИБРАНИМИ функціями DAX у LuckyTemplates
Різниця між ВСІМИ та ВСІМИ ВИБРАНИМИ функціями DAX у LuckyTemplates
Різниця між функціями DAX і DAX може бути досить заплутаною, коли ви починаєте працювати з LuckyTemplates. У цьому підручнику я швидко розгляну основні відмінності між цими двома часто використовуваними функціями DAX і їх відповідним використанням у ваших звітах LuckyTemplates . Ви можете переглянути повне відео цього підручника внизу цього блогу.
Давайте розглянемо цей приклад. Я використаю це, щоб обговорити основну різницю між функціями ALL і ALLSELECTED DAX.
Аналіз візуалізації для місяця з найбільшим розпродажем
У цьому прикладі я визначу найвищий продаж за будь-який конкретний місяць . У той же час я хочу наочно показати найвищий продаж на цьому графіку . Як ви можете бачити тут, я вже створив діаграму, яка показує дохід за кожен місяць. Він також відображає лінії діаграми, які вказують на найвище значення в кожному з цих унікальних місяців.
У цій візуалізації я отримав результати за допомогою функцій ALL і ALLSELECTED DAX.
Як я вже сказав, між цими двома функціями є велика різниця. Функція ALL визначить найвищий місяць від початку часу незалежно від контексту з фільтра дати.
З іншого боку, функція ALLSELECTED враховуватиме контекст дати на сторінці звіту .
Формула для показника місяця найвищого продажу
У цьому підручнику я буду використовувати створений мною показник Місяць найвищих розпродажів як приклад.
Ця формула використовується для розрахунку найбільшого продажу за місяць . Тепер я додам це до нашого звіту як картку.
Як ви можете бачити, це обчисленнязі зразкової таблиці навіть без застосування до неї будь-якого контексту. Крім того, якщо ви уважно подивитеся на дані з таблиці, ви помітите, що відображене значення з візуалізації картки відноситься до січня місяця 2016 року .
Давайте тепер перенесемо показник місяця найвищих продажів у зразкову таблицю.
Досить цікаво, що всередині функції відбувається певна ітерація. Пам’ятайте, що під час використання цієї функції дубльовані значення видаляються, а повертаються лише унікальні значення . У цьому випадку кожен окремий рядок стовпця "Місяць з найбільшим розпродажем" оцінюється до кожного місяця зі стовпців "Місяць" і "Рік" .
Це означає, що для кожного рядка виконується ітерація лише одного конкретного місяця. Це відрізняється від того, що робить формула візуалізації картки «Місяць найвищого розпродажу» .
По суті, формула для візуальної картки « Місяць найвищого розпродажу» повторює всі місяці в певному контексті .
Однак я прагнув відобразити найвищі продажі за місяць із однаковим результатом аж до останнього рядка стовпця «Місяць найвищих продажів» . У цьому випадку я збираюся створити міру, у якій я можу використовувати функцію ALL .
Використання функції ALL у DAX
Давайте подивимося на створений мною показник « Всі місяць найвищого розпродажу» .
Для цього конкретного показника я використав функцію ALL DAX.
Це поширений спосіб використання функції ALL . У більшості випадків вам доводиться використовувати його в поєднанні з функцією або. Бувають випадки, коли вам потрібно розмістити його всередині фільтра, як-от функція.
Як бачите, ця частина формули точно збігається з раніше обговореним показником місяця найвищих продажів .
З іншого боку, я хочу обчислити це в іншому контексті. Таким чином, я зміню контекст обчислення за допомогою функції CALCULATE .
Як ви бачите, результат зі стовпця "Місяць найвищого розпродажу ВСІ" відрізняється від результату, відображеного в візуальній картці "Місяць найвищого розпродажу" .
Я створив іншу картку, яка відображатиме результат вимірювання за ВСІ місяці найвищих продажів . Це лише для того, щоб чітко показати різницю між двома результатами.
Результат у межах показника «Всі місяць найвищого розпродажу» відрізняється, оскільки він не враховує контекст, який я вибрав у фільтрі «Дата» . Насправді це перегляд кожного місяця в часі.
У цьому випадку, якщо я подовжу часовий проміжок у фільтрі «Дата» , ви побачите, що обидва результати будуть однаковими.
Але якщо я встановлю коротший часовий проміжок, найвища сума в цій конкретній даті зміниться . Це через функцію ALL , яка видаляє фільтри для всіх дат .
Використання функції ALLSELECTED у DAX
Відповідно до попереднього прикладу, мені потрібно використовувати функцію ALLSELECTED DAX. Це призначено для видалення фільтрів конкретно для дат у поточному контексті , які я вибрав на сторінці звіту.
Функція ALLSELECTED видаляє будь-який фільтр так само, як і функція ALL . Єдина відмінність полягає в тому, що він все ще враховує загальний контекст на сторінці звіту.
Швидше за все, ви вже бачили, як працює функція ALLSELECTED у aрозрахунок. Це чимось схоже на це, тому що під час обчислення кумулятивного підсумку на сторінці звіту також є вибір дати.
Ви не будете дійсно дбати про обчислення сукупної суми з початку часу. У більшості випадків ви хочете бачити лише результати на основі контексту, який ви вибрали у фільтрі дати . Тоді вам потрібно, щоб це був динамічний обчислення, який оновлюється щоразу, коли ви робите вибір у фільтрі дати .
Висновок
Підводячи підсумок, функція ALL обчислює всі значення в стовпці незалежно від застосованого контекстного фільтра. Функція ALLSELECTED також повертає всі значення в стовпці, але вона видаляє контекстні фільтри зі стовпців і рядків у поточному запиті, зберігаючи фільтри, отримані ззовні.
Ось головна відмінність між двома функціями DAX, яку вам потрібно зрозуміти.
Це тонка різниця, але вона може значно змінити обчислення, які ви отримуєте в певному контексті.
Дуже важливо ретельно зрозуміти, що спричиняє ці відмінності, особливо якщо ви переходите від функції ALL до функції ALLSELECTED .