Що таке Power Query та мова M: детальний огляд
Цей підручник містить огляд редактора Power Query і мови M на робочому столі LuckyTemplates.
Я виявив, що більшість людей плутаються щодо розуміння того, як DAX працює в контексті рядків . Це тому, що контекст рядка може бути досить складним і непотрібним. Тож у цій статті ми торкнемося контексту рядків . Ви можете переглянути повне відео цього підручника внизу цього блогу.
Я думаю про контекст рядків через ітерації або ітераційні функції . Щойно я подумав про таке розрізнення, це стало більш зрозумілим з точки зору того, що насправді відбувається в системі обчислень.
Як підсумок, ми обговорили, що існує три типи контекстів: контекст оцінки , контекст фільтра та контекст рядка .
Будь-який обчислення DAX виконується в два етапи. Контекст оцінки завжди йде першим, а потім він розгалужується або на контекст фільтра, або на контекст рядка, залежно від того, яку функцію ви пишете.
Зміст
Розуміння контексту рядка
Контекст рядка — це ітерація.
Я збираюся показати вам пару прикладів, і, сподіваюся, це допоможе вам зрозуміти, що насправді робить контекст рядків у бек-енді.
Контекст рядка VS Контекст фільтра
У нашому прикладі формула обчислюється черезоскільки це просте агрегування. Він підсумовує весь стовпець «Кількість» після встановлення всіх початкових фільтрів.
Початковий фільтр у таблиці «Продажі» — це продукт 1. Підсумовуючи кожну продану кількість, ми отримуємо 165.
Зараз я покажу вам, як отримати той самий результат, але розрахований зовсім іншим способом. По-перше, я збираюся створити новий показник для ітерації кількості проданих товарів за допомогою ітераційної формули.
Приклади ітераційних функцій включають SUMX ,, MANYX і COUNTX . У цьому випадку ми будемо використовувати SUMX .
Функція SUMX попросила мене додати таблицю, тому я збираюся додати таблицю Sales. А потім він запитав у мене вираз, тому я просто вставив у стовпець «Кількість».
Ця функція значно відрізняється від першої функції, але я отримую точно такий самий результат, коли перетягую її.
Тут ми отримуємо точно такі ж результати, тому що в кінцевому підсумку обчислення однакові. Просто розрахували по-іншому.
Кількість проданих ітерацій було обчислено за допомогою контексту рядка , тоді як загальна кількість проданих обчислень за допомогою контексту фільтра .
Ітерація обчислення проданої кількості за допомогою контексту рядка
Давайте крок за кроком розглянемо, як обчислюється ітерація проданої кількості. По-перше, ви повинні не забувати залишити початковий контекст оцінки, який у цьому випадку є Продуктом 1. А потім через контекст рядка ми проходимо кожен окремий рядок у таблиці, який ми вказуємо.
У цьому випадку ми вказуємо таблицю Sales, а потім переглядаємо кожен рядок у стовпці Quantity.
Під час початкової оцінки продукт 1 визначатиметься тим, що відфільтровано в стовпці Product ID. Потім він підраховує рядки під стовпцем «Кількість». Щоразу, коли він потрапляє на рядок, він входить і зберігає результат у пам’яті.
Коли він досягає нижньої частини таблиці, він виконує оцінку всіх результатів, збережених у пам’яті, а потім виконує будь-які обчислення, які ви від нього зажадаєте, якими в даному випадку є SUMX .
Навіщо використовувати контекст рядка чи функцію ітерації?
Це тому, що всередині ітераційної функції ви можете робити набагато складніші речі. Ви можете написати якусь дуже просунуту логіку всередині.
Наприклад, для кожного рядка в таблиці «Продажі» кількість множиться на 2. Тепер ви побачите, що відбувається той самий процес обчислення, але ми отримуємо різні результати.
Це тому, що для кожного рядка ми пишемо різну логіку. Після перегляду кожного окремого рядка в стовпці кількості ми множимо значення на два, а потім воно зберігається в пам’яті. Наприкінці цього ми робимо SUM .
Ми також можемо писати тут різні речі, включаючи просунуту логіку, таку якабологіка.
Існує купа і купа прикладів того, коли було б краще використовувати функцію ітерації або контекст рядка для виконання обчислень, а не функцію агрегації чи контекст фільтра .
Ключові примітки щодо розуміння контекстів у LuckyTemplates
Щоб повторити всі ключові речі про контекст, пам’ятайте, що обчислення в DAX працює за допомогою двоетапного процесу. Першим кроком завжди є контекст оцінювання . Дуже важливо, який контекст оцінювання .
Коли ви зрозумієте, що таке контекст оцінювання для будь-якого окремого результату, DAX розгалужується двома різними шляхами. Він може обчислювати через контекст фільтра або через контекст рядка.
Вибір контексту для використання залежить від формули, яку ви пишете. Отже, якщо ви напишете просту формулу агрегації , вона потім обчислить її через контекст фільтра . Але якщо ви напишете функцію ітерації , наприклад SUMX, вона обчислить формулу через контекст рядка .
Коли ви станете трохи більш просунутими в DAX, ви зможете мати кілька контекстів в одній функції. Але перш ніж туди потрапити, вам справді потрібно зрозуміти, що таке контекст у його найпростішій формі.
Висновок
Розуміння типів контексту є надзвичайно важливим, оскільки ви вивчаєте DAX і бажаєте виконувати більш просунуту роботу. Коли ви починаєте писати дійсно просунуту формулу DAX, у вас одночасно працює кілька контекстів, і вам потрібно розуміти, що робить кожна окрема частина цієї формули, щоб досягти бажаних результатів.
Ось кілька рекомендованих посилань, щоб дізнатися більше про застосування контексту рядків у LuckyTemplates:
Контекст оцінювання – (1.8) Посібник DAX для початківців
Контекст фільтра – (1.9) Посібник DAX для початківців
Насолоджуйтесь роботою над цим.
Цей підручник містить огляд редактора Power Query і мови M на робочому столі LuckyTemplates.
Дізнайтеся, як створити звіт із розбивкою на сторінки, додати тексти та зображення, а потім експортувати звіт у різні формати документів.
Дізнайтеся, як використовувати функцію автоматизації SharePoint для створення робочих процесів і допомоги в мікрокеруванні користувачами, бібліотеками та списками SharePoint.
Відточіть свої навички розробки звітів, приєднавшись до змагання з аналізу даних. Прискорювач може допомогти вам стати суперкористувачем LuckyTemplates!
Дізнайтеся, як обчислювати поточні підсумки в LuckyTemplates за допомогою DAX. Поточні підсумки дозволяють вам не потрапити в окремий результат.
Зрозумійте концепцію змінних у DAX у LuckyTemplates і значення змінних для обчислення показників.
Дізнайтеся більше про настроюваний візуал під назвою LuckyTemplates Slope chart, який використовується для показу зростання/зменшення для одного чи кількох показників.
Відкрийте для себе кольорові теми в LuckyTemplates. Це необхідно для того, щоб ваші звіти та візуалізації виглядали та працювали без проблем.
Розрахувати середнє значення в LuckyTemplates можна кількома способами, щоб отримати точну інформацію для ваших бізнес-звітів.
Давайте заглибимося в стандартну тематику LuckyTemplates і розглянемо деякі функції, вбудовані в саму програму LuckyTemplates Desktop.