Перейти до основного
Підтримка
Вхід
Вхід за допомогою облікового запису Microsoft
Увійдіть або створіть обліковий запис.
Вітаємо,
Виберіть інший обліковий запис.
У вас є кілька облікових записів
Виберіть обліковий запис, за допомогою якого потрібно ввійти.

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

У цій статті

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

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

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

=SUMX(
     FILTER ('ResellerSales_USD'; 'ResellerSales_USD'[Кількість] > 5 &&
     'ResellerSales_USD'[ProductStandardCost_USD] > 100),
     'ResellerSales_USD'[Обсяг продажів]
     )

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Докладні відомості див. в прикладі контексту у формулах DAX.

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

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

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

Заміна всіх фільтрів за допомогою функції ALL

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

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

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

=SUM (Збут[Обсяг])/SUMX(Збут[Обсяг]; FILTER(Збут;ALL(Товари)))

  • Перша частина формули СУМА (Збут[Обсяг]) обчислює числу.

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

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

Докладні приклади див. в описі функції ALL.

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

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

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

Потрібна додаткова довідка?

Потрібні додаткові параметри?

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

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

Чи ця інформація була корисною?

Наскільки ви задоволені якістю мови?
Що вплинуло на ваші враження?
Натиснувши кнопку "Надіслати", ви надасте свій відгук для покращення продуктів і служб Microsoft. Ваш ІТ-адміністратор зможе збирати ці дані. Декларація про конфіденційність.

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

×