Контекст у формулах DAX

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

Контекст дає змогу виконувати динамічного аналізу, у якому можна змінити результати формули, щоб вони відображали Поточний виділений фрагмент рядка або клітинки а також будь-які відповідні дані. Розуміння контексту й ефективне використання контекст – це дуже важливо для створення високопродуктивні формулах динамічні аналізу і для виправлення неполадок у формулах.

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

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

Розуміння контексту

Формули в Power Pivot можуть впливати фільтри, застосовані до зведеної таблиці, за зв'язки між таблицями а фільтри, які використовуються у формулах. Контекст є те, що дає змогу виконувати динамічного аналізу. Розуміння контексту важливо для стандартного та виправлення неполадок із формулами.

Існують різні типи контексту: контекст рядка, контекст запиту та контекст фільтра.

Контекст рядка можна розглядати як "поточний рядок". Якщо ви створили обчислюваний стовпець, контекст рядка складається з значення в кожному з окремих рядків і значень у стовпці, які пов'язані з поточним рядком. Існують також деякі функції (раніше та НАЙРАНІШОГО), отримайте значення в поточному рядку а потім за допомогою цього значення під час виконання операції над до всієї таблиці.

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

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

На початок сторінки

Контекст рядка

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

Наприклад, створено обчислюваний стовпець, = [Вартість доставки] + [Податок],

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

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

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

= [Вартість доставки] + RELATED('Region'[TaxRate])

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

Контекст декількох рядків

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

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

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

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

=Maxx(Filter(Sales,[ProdKey]=EARLIER([ProdKey])),Sales[OrderQty])

Докладний опис Покрокове керівництво цю формулу можна знайти раніше.

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

На початок сторінки

Контекст запиту

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

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

Наприклад, припустимо, що було створено просту формулу, яка виконує додавання значень у стовпці прибуток table:=SUM('Sales'[Profit]) продажів .

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

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

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

На початок сторінки

Контекст фільтра

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

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

Додаткові відомості про те, як створювати фільтри у формулах наведено функції фільтрування.

Приклад як фільтри можна встановлювати для створення загальних підсумків можна знайти в усіх.

Приклади вибіркове очищення та застосування фільтрів у формулах відображається Функція ALLEXCEPT.

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

На початок сторінки

Визначення контексту у формулах

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

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

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

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

Приклади контексту у формулах

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

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

  • Функція ALL установлює контекст у формулах. Ви можете використовувати його, щоб перезаписати фільтрів, застосованих як результат контекст запиту.

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

  • РАНІШЕ і НАЙРАНІШОГО функції дозволити вам повторення через таблицями за виконання обчислень, під час створення посилання на значення із внутрішньої циклу. Якщо ви знайомі з концепцією рекурсії і внутрішніх і зовнішніх цикли, буде оцінити power, які раніше та НАЙРАНІШОГО функції надають. Якщо ви не знайомі з цих понять, дотримуйтеся вказівок, наведених у прикладі обережно, щоб побачити, як внутрішній і зовнішній контексти, які використовуються для обчислень.

На початок сторінки

Цілісність даних

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

Якщо ви не знайомі з концепцією реляційних даних, ми рекомендуємо спершу ознайомитися із вступним розділом Огляд зв'язків.

Цілісність зв'язків і зв'язки Power Pivot

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

У зведених таблицях Якщо потрібно згрупувати даних на одній стороні зв'язку, будь-який незв'язаних записів даних на стороні "багато" зв'язку – це згруповані і буде включено в підсумки пустий рядок заголовка. Пустий заголовок еквівалентна приблизно "невідомий елемент".

Докладніше про невідомий елемент

Концепція невідомий елемент є ймовірно, знайомі вам, якщо ви працювали з системами багатовимірних бази даних, наприклад SQL Server Analysis Services. Якщо термін новий для вас, у наведеному нижче прикладі пояснюється, що таке невідомий елемент, і як це впливає на обчислення.

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

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

Обробки пустих значень проти пустий рядок

Пусті значення, які відрізняються від пустих рядків, які додаються до розміщення невідомий елемент. Пусте значення – це спеціальний значення, яке використовується для відображення значення Null, пусті рядки та інші відсутні значення. Щоб отримати додаткові відомості про пусте значення, а також інші типи даних DAX наведено типи даних у моделі даних.

На початок сторінки

Удосконалення навичок роботи з Office
Ознайомтеся з навчальними матеріалами
Отримуйте нові функції раніше за інших
Приєднайтеся до оцінювачів Office

Ця інформація корисна?

Дякуємо за ваш відгук!

Дякуємо за відгук! Схоже, вам може стати в нагоді допомога одного з наших спеціалістів служби підтримки Office, з яким ми вас можемо з’єднати.

×