Ітерація функцій мовою DAX – докладний приклад

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

Можливо, ви тільки що завершили деякі прості СУММИ або потенційно використовували функцію AVERAGE, але також важливо розуміти, як використовувати ітераційні функції, які мають X на кінці , наприклад: SUMX, AVERAGEX або COUNTX.

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

Зміст

Що таке ітераційна функція?

Якщо ви все ще не знайомі з тим, що таке функція ітерації, це функція на мові формул DAX, яка зазвичай має X на кінці. У вас також є табличні функції, які перебирають таблицю, наприклад FILTER або VALUES, але в цьому випадку ми матимемо справу виключно з SUMX.

Якщо ви подивитеся на нашу формулу для загального обсягу продажів, ви побачите, що це ітераційна функція через SUMX. Ітерація означає проходження кожного окремого рядка та виконання обчислень. У цьому випадку для кожного рядка в таблиці Sales ми множимо кількість на поточну ціну. Ми також повертаємось до таблиці Product за допомогою функції RELATED, щоб отримати поточну ціну.

Ітерація функцій мовою DAX – докладний приклад

Я хочу показати вам, як ви можете написати справді складні ітераційні функції, які отримують чудове розуміння, яке ви можете отримати у своїх даних. Для цього підручника я хочу підрахувати, скільки продажів ми робимо вище певної ціни. У цьому випадку ми виберемо 2000 доларів США.

Я також хочу знати, які наші продажі на місяць для продуктів, які перевищують 2000 доларів США, але де хтось купує більше, ніж лише один продукт. Ми також хочемо побачити, наскільки добре це порівнюється з нашими загальними продажами. Це та складність, якої можна досягти, написавши лише одну формулу та використовуючи функцію ітерації.

Ціна продажу понад 2000 доларів США

Давайте створимо показник і назвемо його Sale Price > $2000 & Quantity > 1 . Як правило, вам доведеться написати кілька різних стовпців або кілька різних показників, щоб побачити тут відповідь, але я збираюся показати вам, як ви можете зробити це за допомогою лише одного. Я почну з SUMX, і тут сказано, що нам потрібно ввести таблицю, чи не так?

Ітерація функцій мовою DAX – докладний приклад

Отже, ми збираємося розв’язати цю проблему «Кількість > 1» , створивши таблицю, яка не є повною таблицею «Продажі», а таблицею, у якій уже відфільтровано все, що було видно лише один раз. Тут ми будемо використовувати FILTER, оскільки це таблична функція, тож ви можете помістити будь-яку таблицю всередину. Тоді ми перейдемо до Sales і повторимо кожен окремий рядок у таблиці Sales у цій таблиціі відфільтрувати кожен рядок із кількістю, більшою за одиницю.

Ітерація функцій мовою DAX – докладний приклад

Для кожного продажу вище 1 я також хочу створити додаткову логіку. Я збираюся написати шаблон виразу та використовувати тут SWITCH. Ми збираємося сказати, що якщо поточна ціна продажу перевищує або дорівнює 2000 доларів США, тоді я хочу обчислити загальний обсяг продажів. Якщо ні, то я взагалі не хочу це обчислювати. Нарешті, я поставлю 0 як альтернативний результат.

Ітерація функцій мовою DAX – докладний приклад

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

У цьому випадку для кожного окремого рядка в цій таблиці фільтрування вниз я оцінюю поточну ціну, яка перевищує 2000 доларів США. Якщо так, ми підраховуємо продажі цього рядка, а якщо ні, то це просто 0.

Коли я перетягну цю міру в таблицю, ви побачите, що результати подібні до тих, що ми досягли на першій діаграмі; єдина різниця полягає в тому, що це щоденно.

Ітерація функцій мовою DAX – докладний приклад

Ціна продажу понад 500 доларів США

Ми можемо отримати додаткову інформацію, повторно використовуючи той самий шаблон. Якщо ми хочемо подивитися, що було вище 500 доларів, все, що нам потрібно зробити, це внести тут деякі невеликі зміни, натиснути Enter, а потім також перетягнути це в таблицю.

Ітерація функцій мовою DAX – докладний приклад

Очевидно, ми бачимо велику різницю, тому що є більше продуктів, які ми підраховуємо. Це пов’язано з тим, що ми не позбавляємося такої кількості дорожчих або нижчих продуктів, як це було раніше з 2000 доларів США.

Ітерація функцій мовою DAX – докладний приклад

Візуалізація даних 

Ми також можемо змінити це на a, однак, як ви бачите, діаграма виглядає дещо зайнятою, тому, ймовірно, краще залишатися в таблиці, або ми можемо зробити часові рамки більш стислими, як діаграма ліворуч.

Ітерація функцій мовою DAX – докладний приклад

Сподіваємось, ви можете оцінити та зрозуміти, наскільки далеко ви можете зайти з цими ітераційними функціями в мові DAX. Ви можете почати по-справжньому занурюватися в будь-який аспект своїх даних або витягувати дуже конкретні ідеї. Спосіб зробити це за допомогою цього контексту рядка, який дозволяє вам фактично потрапити всередину цих ітераційних функцій. Ви можете переглядати окремий рядок, розміщувати його в обчисленні чи поза ним, а також використовувати такі функції ітерації, як SUMX, AVERAGEX і COUNTX.

Ітераційні функції дають вам набагато більше гнучкості з точки зору обчислень, які ви можете виконувати на рівні рядка, порівняно з агрегаціями, які дозволяють агрегувати лише цілий стовпець. Тепер у межах ітераційних функцій вам спочатку потрібно ввести посилання на таблицю, а потім вираз, але, безперечно, розширте свою думку щодо того, чим це може бути насправді.

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

Вираз (або міра), який ви вводите, також може бути дуже складним. Ви можете використовувати розширену логіку IF або логіку SWITCH, або взагалі будь-що, що ви можете робити на рівні рядка всередині обчислюваного стовпця. Ви фактично можете помістити це в цю частину виразу ітераційної функції.

Висновок

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

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

Перевіртеякщо ви тільки починаєте знайомство з мовою DAX і LuckyTemplates. Багато чого навчитися на цьому безкоштовному курсі. Ви можете знайти це на.


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

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

Цей блог містить візуалізацію Shape Map для просторового аналізу в LuckyTemplates. Я покажу вам, як ви можете ефективно використовувати цю візуалізацію з її функціями та елементами.

Фінансова звітність LuckyTemplates: розподіл результатів за шаблонами в кожному окремому рядку

Фінансова звітність LuckyTemplates: розподіл результатів за шаблонами в кожному окремому рядку

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

Вимірювання DAX у LuckyTemplates за допомогою розгалуження вимірювання

Вимірювання DAX у LuckyTemplates за допомогою розгалуження вимірювання

Створіть показники DAX у LuckyTemplates, використовуючи наявні показники або формули. Це те, що я називаю технікою розгалуження міри.

Найпотужніший виклик функцій у LuckyTemplates

Найпотужніший виклик функцій у LuckyTemplates

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

Методи моделювання даних для організації показників DAX

Методи моделювання даних для організації показників DAX

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

Фінансова інформаційна панель LuckyTemplates: повні поради щодо налаштування таблиці

Фінансова інформаційна панель LuckyTemplates: повні поради щодо налаштування таблиці

LuckyTemplates — чудовий інструмент для фінансової звітності. Ось підручник про те, як створювати персоналізовані таблиці для вашої фінансової інформаційної панелі LuckyTemplates.

Рекомендації щодо потоку мови Power Query

Рекомендації щодо потоку мови Power Query

У цьому підручнику обговорюватиметься технологія Power Query Language Flow і те, як вона може допомогти створити гладкий і ефективний звіт із даними.

Спеціальні значки LuckyTemplates | Техніка візуалізації PBI

Спеціальні значки LuckyTemplates | Техніка візуалізації PBI

Я обговорю одну з моїх улюблених технік, пов’язаних із користувальницькими піктограмами LuckyTemplates, яка динамічно використовує власні піктограми у візуальних елементах LuckyTemplates.

Створення таблиць LuckyTemplates за допомогою функції UNION & ROW

Створення таблиць LuckyTemplates за допомогою функції UNION & ROW

У цьому блозі я покажу вам, як можна створювати таблиці LuckyTemplates за допомогою формули, яка поєднує функції UNION і ROW.

Локальний шлюз даних у Power Automate

Локальний шлюз даних у Power Automate

Дізнайтеся, як локальний шлюз даних дозволяє Power Automate отримувати доступ до настільних програм, коли користувач знаходиться поза комп’ютером.