Отслеживайте свой прогресс и получайте свежие материалы

Щелкнув "Отслеживать прогресс", вы разрешаете корпорации Майкрософт присылать на вашу электронную почту оповещения об обновлении учебных ресурсов по Power BI. Вы можете в любое время отказаться от рассылки.

×

Замечательно! Первая тема пройдена!

Введите свой адрес электронной почты, чтобы отслеживать свой прогресс и получать свежие учебные материалы по Power BI.

Щелкнув "Отслеживать прогресс", вы разрешаете корпорации Майкрософт присылать на вашу электронную почту оповещения об обновлении учебных ресурсов по Power BI. Вы можете в любое время отказаться от рассылки.

×

Спасибо!

В ходе интерактивного обучения пройденные темы будут отмечаться зеленой галочкой.

×

Вы освоили структурные элементы

Вводная часть пройдена — приготовьтесь по-настоящему погрузиться в мир знаний!

Таблицы DAX и фильтрация

Важное отличие DAX от языка формул Excel заключается в том, в DAX можно передавать из одного выражения в другое целые таблицы, а не отдельные значения. Благодаря этому в DAX вы можете фильтровать таблицы в выражениях и продолжать работу с отфильтрованными наборами значений.

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

Табличные функции DAX

В DAX есть широкий набор табличных функций, включая перечисленные ниже.

  • FILTER
  • ALL
  • VALUES
  • DISTINCT
  • RELATEDTABLE

Эти функции возвращают целую таблицу, а не значение. Результаты табличной функции обычно используются для последующего анализа в составе большего выражения, а не в качестве окончательного значения. Важно помнить, что при использовании табличной функции результаты наследуют связи столбцов таблицы.

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

FILTER (ALL (Table), Condition)

Оно применяет фильтр ко всей таблице Table, игнорируя содержимое текущего фильтра.

Функция DISTINCT возвращает уникальные значения столбца, которые также видны в текущем контексте. Поэтому в приведенном выше примере выражения DAX функция ALL предписывает игнорировать фильтры, а если заменить ALL функцией DISTINCT, то фильтры соблюдаются.

Подсчет значений средствами DAX

Создателям отчетов Power BI часто приходится отвечать на стандартный вопрос:

  • "Сколько значений в этом столбце?"

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

Например, Power BI и DAX учитывают значения, для которых нет оптимального перекрестного индекса. Если входящая связь нарушена, DAX добавляет в связанную таблицу новую строку, которая содержит пробелы в каждом поле, и связывает ее с неиндексированной строкой, чтобы обеспечить целостность данных. Если функция охватывает пустые строки (например, так часто бывает при использовании функции ALL), все они будут учтены при подсчете количества значений в этом столбце.

С помощью функций DAX можно также создать полностью вычисляемые таблицы. Для вычисляемых таблиц, созданных с помощью DAX, необходимы ИМЯ и ТАБЛИЧНАЯ функция. Вычисляемые таблицы можно использовать как и любую другую таблицу, включая создание связей.

Видео от Альберто Феррари (Alberto Ferrari), SQLBI

Request demo