Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Розуміння Рядкового Та Фільтрувального Контексту | Створення DAX-метрик
Моделювання Даних в Excel

Розуміння Рядкового Та Фільтрувального Контексту

Свайпніть щоб показати меню

Кожне обчислення DAX виконується у певному контексті — визначенні того, які рядки є актуальними на момент обчислення. Без розуміння контексту неможливо передбачити, яке значення поверне міра, або з’ясувати, чому вона повертає неправильний результат.

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

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

Що це таке? Усвідомлення поточного рядка. Формула може звертатися до будь-якого стовпця в тій самій таблиці та отримувати значення саме для цього рядка — не суму чи середнє, а конкретне значення комірки.

Note
Примітка

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

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

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

Кожна клітинка у зведеній таблиці має унікальну комбінацію активних фільтрів.

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

Чотири джерела фільтрувального контексту

Фільтрувальний контекст накопичується одночасно з чотирьох незалежних джерел. Кожне з них додатково звужує набір даних:

  1. Мітки рядків: кожне значення в області рядків застосовує фільтр до свого рядка. Region = North і Region = South створюють різні фільтрувальні контексти — кожна клітинка у рядку North бачить лише продажі North;
  2. Мітки стовпців: кожне значення в області стовпців додає другий вимір фільтрації. У поєднанні з мітками рядків кожна клітинка знаходиться на перетині двох незалежних фільтрів;
  3. Зрізи: вибір у зрізі застосовує свій фільтр до кожної клітинки зведеної таблиці одночасно. Вибір January у зрізі місяців обмежує всі клітинки даними лише за січень незалежно від їхнього положення у рядках чи стовпцях;
  4. Фільтри зведеної таблиці: фільтри, застосовані безпосередньо в області фільтрів зведеної таблиці, також впливають на фільтрувальний контекст кожної клітинки, накладаючись на вже активні фільтри рядків, стовпців і зрізів.

Завдання

Крок 1 — Експеримент із контекстом рядка

  • Відкрийте робочу книгу. Перейдіть на вкладку Power Pivot → Керування → Подання даних → Sales.

  • Перегляньте обчислюваний стовпець Order Size. Він містить значення Large або Small для кожного рядка залежно від значення Quantity у цьому рядку.

  • Додайте другий обчислюваний стовпець до таблиці Sales, використовуючи таку формулу:

= Sales[Quantity] * Sales[UnitPrice]

  • Перейменуйте його на Row Revenue.

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

Крок 2 — Дайте відповіді на наступні питання

  1. Який тип контексту використовується, коли DAX обчислює Row Revenue для кожного рядка?
  2. Чи є Row Revenue тим самим, що й стовпець Total, який вже є у таблиці Sales?
  3. Чи було б доцільно створити Row Revenue як міру, а не як обчислюваний стовпець?
question mark

Яке з наведених тверджень найточніше описує різницю між контекстом рядка та контекстом фільтра в DAX?

Виберіть правильну відповідь

Все було зрозуміло?

Як ми можемо покращити це?

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

Секція 4. Розділ 4

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Секція 4. Розділ 4
some-alt