Фільтрування даних у формулах 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 . У даному випадку використовується лише обсяг збуту.

    Зверніть увагу, що функцій, таких як фільтр, які повертають таблицю, ніколи не повернути таблицю або рядки безпосередньо, але завжди вбудовано в іншу функцію. Додаткові відомості про ФІЛЬТРУВАННЯ та інші функції, які використовуються для фільтрування, включно з кілька прикладів відображається Фільтр функції (DAX).

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

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

На додачу до фільтрування для певних значень, ви можете повернутися унікальний набір значень з іншої таблиці або стовпця. Це може бути корисно, якщо потрібно обчислити кількість унікальних значень у стовпці або інші операції за допомогою списку унікальних значень. У DAX доступні дві функції для повернення унікальних значень: окремі функції і ЗНАЧЕНЬ.

  • Функція 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 (Sales[Amount]), обчислює чисельник.

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

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

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

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

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

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

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

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

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

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

×