Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Understanding Row and Filter Context | Моделювання Даних в Excel
Моделювання Даних в Excel

Understanding Row and Filter Context

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

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

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

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

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

Note
Примітка

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

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

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

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

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

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

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

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

Завдання

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

  • Відкрийте робочу книгу. Перейдіть на вкладку Power Pivot → Manage → Data View → 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?

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

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

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

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

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

Запитати АІ

expand

Запитати АІ

ChatGPT

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

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