Робота з ітераційними функціями в DAX

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

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

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

Ключова річ у ітераційних функціях полягає в тому, що вони повторюють щось.

Зміст

Проста ітерація з використанням SUMX

Робота з ітераційними функціями в DAX

У цьому випадку я хочу дещо підсумувати, але хочу переглянути кожен рядок у цій таблиці Sales.

Робота з ітераційними функціями в DAX

І потім у кожному окремому рядку я хочу запустити цю конкретну логіку тут.

Робота з ітераційними функціями в DAX

Давайте швидко перейдемо до нашої дуже простої таблиці Sales, де я хочу виконати деяку логіку в кожному окремому рядку. А потім я хочу помножити кількість на ціну.

Робота з ітераційними функціями в DAX

Ціни в цій таблиці немає. І для цієї конкретної моделі він фактично є в таблиці Product.

Робота з ітераційними функціями в DAX

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

Це ключові поняття, про які слід пам’ятати, коли ми починаємо робити більш складні речі.

Альтернативний підхід до отримання продажів за допомогою SUMX

Робота з ітераційними функціями в DAX

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

Робота з ітераційними функціями в DAX

Тут ви побачите, що цей результат точно такий самий, як результати в першому прикладі (підручник SUMX 2) або загальні продажі.

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

Робота з ітераційними функціями в DAX

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

SUMX і логічні функції

Робота з ітераційними функціями в DAX

Я використовую тут SUMX , але це також актуально для, MINX і MAXX . Вони всі дуже схожі речі.

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

Після того, як усі ці значення збережено в пам’яті, виконується загальний обчислення – наприклад, SUM або AVERAGE .

Робота з ітераційними функціями в DAX

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

Робота з ітераційними функціями в DAX

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

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

Ітерація по таблицях

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

Робота з ітераційними функціями в DAX

Ми думатимемо, що кожен окремий результат тут має певний контекст. У цьому конкретному випадку ми маємо контекст клієнта.

Робота з ітераційними функціями в DAX

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

Якщо так, я хочу підрахувати загальний обсяг продажів. Але якщо ні, я хочу, щоб він повернув нуль.

Робота з ітераційними функціями в DAX

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

Робота з ітераційними функціями в DAX

Щоробить тут це створює віртуальну таблицю. Отже, SUMX тут навіть не працює над чимось фізичним. Це насправді робота над чимось абсолютно віртуальним.

Проста ітерація з використанням MINX

Робота з ітераційними функціями в DAX

Це схоже на попередні приклади, але замість SUMX ми збираємося запустити якийсь інший тип агрегації, коли пройдемо кожен окремий рядок.

Робота з ітераційними функціями в DAX

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

Робота з ітераційними функціями в DAX

Потім ми хочемо повернути мінімальну суму з місця, де вони придбали.

Проста ітерація з використанням MAXX

Робота з ітераційними функціями в DAX

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

Висновок

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

Як тільки ви почнете копатися в більш складних обчисленнях, ви побачите, наскільки ці функції важливі для повернення значень на рівні контексту.

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

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

Ключові поняття для ітерації функцій у LuckyTemplates

Ітерація логіки за допомогою віртуальних таблиць – розширені концепції DAX у LuckyTemplates

Насолоджуйтесь роботою над цим.


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

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