Фільтрування даних у формулах DAX

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

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

У цій статті

Створення фільтра в таблиці, яка використовується у формулі

Фільтри, які видаляють повторення

Вплив контексту на фільтри

Видалення фільтрів

Перевизначення всіх фільтрів за допомогою функції ALL

Перевизначення певних фільтрів за допомогою функції ALLEXCEPT

Створення фільтра в таблиці, яка використовується у формулі

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

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

= SUMX (
фільтр («ResellerSales_USD», «ResellerSales_USD' [Кількість] > 5 & &
'ResellerSales_USD' [ProductStandardCost_USD] > 100),
'ResellerSales_USD' [SalesAmt]
)

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

  • На другу частину формули, FILTER(table, expression),повідомляє, що SUMX які даних для використання. SUMX потрібна таблиці або вираз, результатом в таблиці. Тут замість використання усі дані в таблиці, використовується функція FILTER щоб указати, які рядки з таблиці використовуються.

    Вираз фільтр має дві частини: перша частина назви таблиці, до якого застосовується фільтр. Другий компонент визначає вираз для використання як умови фільтрування. У цьому випадку у разі фільтрування на реселерів, хто продав більше 5 одиниць і продуктів, що вартість більш ніж 100 грн. Оператор & &, – це логічне оператор AND, яка вказує на обох частинах умову має бути значення true для рядка, до якої буде належати відфільтрованих набір.

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

    Зверніть увагу: функції, які повертають таблицю (наприклад, FILTER), ніколи не повертають таблицю або рядки безпосередньо. Натомість вони завжди використовуються в інших функціях. Докладні відомості про FILTER та інші функції, які використовуються для фільтрування, а також інші приклади див. в статті Функції фільтрів (DAX).

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

Фільтри, які видаляють повторення

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

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

  • Функція VALUES також Повертає список унікальні значення, але також повертає невідомий елемент. Це корисно під час використання значень із двох таблиць, які приєдналися зв'язку, а значення – це відсутні в одній таблиці та презентації в іншому. Докладніше про невідомий елемент Переглянути контекст у формулах DAX.

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

=COUNTROWS(DISTINCT('ResellerSales_USD'[ProductKey]))

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

Вплив контексту на фільтри

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

Докладніші відомості можна отримати, переглянувши статтю Контекст у формулах DAX.

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

Видалення фільтрів

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

Перевизначення всіх фільтрів за допомогою функції ALL

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

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

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

= SUM (продаж [Кількість]) / SUMX (збут [сума], фільтр (продажі, ALL(Products)))

  • Перша частина формули, SUM (Збут[Сума]), обчислює чисельник.

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

  • На другу частину формули, обчислює знаменник. Функція ALL ігноруватиме всі фільтри, які можуть застосовуватися до Products таблиці.

Докладніші відомості та детальні приклади можна переглянути у статті Функція ALL.

Перевизначення певних фільтрів за допомогою функції ALLEXCEPT

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

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

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

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

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

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

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

×