[Онлайн-видеокурс]

DAX — это просто

(для Power BI и Power Pivot)

* простой авторский взгляд на конструктор формул DAX для Power BI и Power Pivot

Друзья, сталкивались ли Вы с проблемами при создании формул на языке DAX в Power BI или Power Pivot?

Думаю, да! Практически все кто работают в DAX, так или иначе, встречают на своем пути:

Иногда, прямо руки опускаются… и никто помочь не может!

Знакомо?… И мне знакомо…

Но, уделяя внимание данной теме на протяжении огромного количества часов, и днем, и ночью, пройдя через все трудности, путаницы, тщательно изучая тонны разрозненной информации (преимущественно на англоязычном пространстве, так как в Рунете по этой теме, ну прямо, совсем крохи), практикуя все на себе, и помогая другим пользователям DAX, я понял, что на самом деле DAX — ЭТО ПРОСТО! ДЛЯ ВСЕХ!

И главное здесь — понять загадку DAX, понять его суть, смысл и структуру. Тогда язык DAX предстает как простой конструктор формул, на котором можно легко и играючи создавать любые формулы, решая самые серьезные и глубокие аналитические задачи.

Хотите так?

Представляю Вашему вниманию очень подробный, пошаговый онлайн-видеокурс «DAX — это просто», в котором изложено мое простое авторское видение данного конструктора формул для Power BI и Power Pivot. Курс, в котором Вы на практике вместе со мной, начиная с самых основ и продолжая далее углубляться небольшими шажками, отработаете навыки работы с языком функций и формул DAX.

О КУРСЕ

В данном большом, подробном, пошаговом курсе «DAX — это просто» с практикой и самостоятельными заданиями Вы изучите мое авторское видение языка DAX. С самого начала (с момента создания модели данных) и до самого конца — до разбора сложных витиеватых формул.

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

Сочетая различными способами эти блоки, Вы, при помощи конструктора формул DAX, с легкостью сможете решать любые (простые или сложные) аналитические задачи.

Очень важно, что в данном курсе язык DAX рассматривается с точек зрения сразу обеих популярных платформ — и Power BI, и Power Pivot, с разбором тонкостей и нюансов его применения в каждой из платформ.



Курс обучения состоит из 9 последовательных модулей, разделенных по логическому смыслу. В каждом модуле по несколько уроков. В свою очередь, каждый урок состоит из нескольких видео (от 1 до 5). Длительность каждого видео 20 — 60 минут (в ряде случаев, чуть больше).

В каждом уроке разбирается конкретная тема. После материал урока закрепляется разбором разных практических аналитических задач, а также, специальным заданием для самоконтроля ученика. Естественно, с дальнейшей проверкой этого практического задания.

Кроме 9 основных модулей, в курс также дополнительно входят 3 бонуса и 1 супербонус, подробную информацию о которых Вы сможете узнать ниже на сайте.

Курс доступен онлайн с любого устройства: ПК (Windows, MAC), планшеты, смартфоны.

Ниже представлены скриншоты того, как выглядит курс обучения в личном кабинете ученика.

DAX — это как простой конструктор LEGO. Главное понять его суть и структуру. А далее, уже творчество и наслаждение процессом.

Да, я хочу изучить данный курс

ВАШИ РЕЗУЛЬТАТЫ

и многое-многое другое…

Заставьте Ваши данные говорить! DAX это может. Вы можете! Это просто…!

Да, я хочу изучить данный курс

СОСТАВ КУРСА

МОДУЛЬ 1: Важное начало (глубокая аналитика, моделирование, простая агрегация и переменные DAX)

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

Изучаем схему работы с конструктором формул DAX:

  1. Базовая простая агрегация
  2. Предварительная фильтрация, а затем простая агрегация
  3. Предварительный расчет выражений, а затем простая агрегация
  4. Предварительная агрегация (создание сводных таблиц, таблиц с итогами и др.), а затем простая агрегация
  5. Предварительное изменение контекста фильтров, а затем простая агрегация
  6. Различное объединение 1-5 пунктов друг с другом, а затем простая агрегация

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

  1. Организация хранения информации (единая БД)
  2. Подключение к БД (+ к другим источникам данных), обработка данных, сохранение в МД
  3. Создание связей в МД
  4. Создание дополнительных таблиц
  5. Создание дополнительных столбцов
  6. Создание иерархий
  7. Скрытие / удаление лишних столбцов / таблиц
  8. Обогащение МД (создание столбцов и мер)
  9. Создание визуальных аналитических отчетов

Изучаем простую базовую агрегацию в DAX — простые агрегационные функции SUM, MAX / MIN, AVERAGE, AVERAGEA, COUNT, COUNTA, COUNTBLANK, DISTINCTCOUNT, COUNTROWS.

Отвечаем на вопрос «Для чего именно нужны простые агрегационные функции?». Реализуем ответ на этот вопрос на практике.

Изучаем переменные DAX (VAR и RETURN). Что это, для чего нужно и как этими переменными пользоваться.

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

МОДУЛЬ 2: Итерационный расчет выражений + агрегация. Итерационные X-функции DAX

Во втором модуле данного курса мы сосредоточимся на разборе первого метода глубокой аналитики — расчет выражений перед сведением базовой аналитической агрегации. То есть, разберем работу итерационных X-функций, поймем как они работают и для чего они нам нужны с точки зрения аналитических расчетов.

Изучаем как перед агрегацией проводить предварительные вычисления выражений.

Производим первое знакомство с итерационными X-функциями SUMX, MAXX / MINX, AVERAGEX, COUNTX, COUNTAX. Подробно разбираем принцип работы этих функций.

МОДУЛЬ 3: Предварительная фильтрация / удаление фильтров + агрегация. Функции фильтров в DAX

В третьем модуле мы разберем еще один метод глубокой аналитики в DAX — фильтрация перед сведением базовой аналитической агрегации. И, соответственно, разберем ряд DAX функций, которые отвечают за ту или иную фильтрацию. Также начнем соединять работу этого метода глубокой аналитики (фильтрация) с методом, о котором говорили в предыдущем втором модуле курса (итерационный расчет выражений), тем самым, позволяя себе еще глубже «нырнуть» в исходные данные для извлечения важных аналитических инсайтов.

Изучаем как в DAX перед агрегацией производить фильтрацию строк исходных и вычисляемых таблиц (табличных выражений) на основе одного или нескольких условий фильтров с помощью функции FILTER.

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

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

Изучаем типы таблиц в модели данных и связи между ними. А также то, как при расчетах, находясь в одной таблице, брать через связи значения из другой связанной таблицы с помощью функций RELATED и RELATEDTABLE. Тем самым, реализуя перед аналитическим агрегированием фильтрацию одной таблицы по значениям из другой связанной таблицы.

Закрепляем весь материал на практике, решая следующие аналитические задачи:

  • расчет количества товаров, по которым были продажи в 2017 г
  • расчет количества товаров, по которым НЕ было НИ ОДНОЙ продажи в 4 квартале 2018 г

Изучаем как в своих аналитических формулах и мерах очищать ранее наложенные пользовательские фильтры при помощи семейства функций ALL (ALL, ALLEXCEPT, ALLSELECTED, ALLNOBLANKROW).

Подробно разбираем все эти функции, их сходства и различия, предназначение и особенности.

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

  • расчет прибыли менеджеров выраженной в % от общей прибыли по всем менеджерам
  • расчет доли прибыли в % каждого рекламного источника в составе общей прибыли по всем рекламным источникам

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

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

Рассматриваем сходство этих функций, различие и особенности.

МОДУЛЬ 4: Предварительная агрегация + агрегация. Создание в DAX внутренних таблиц: сводных, с итогами, ТОП, объединенных и др. таблиц

В четвертом модуле мы разберем еще один метод глубокой аналитики — создание в коде DAX, перед базовой аналитической агрегацией, предварительных сводных таблиц, таблиц с итогами, таблиц с ТОП-значениями, объединенных и других видов таблиц. То есть, будем реализовывать агрегацию от уже заранее агрегированных данных теми или иными предварительными таблицами. Ну, и конечно же, все будем закреплять на практике, одновременно соединяя воедино данный метод глубокой аналитики (предварительные таблицы) с двумя методами, которые мы изучали в прошедших модулях курса (предварительный расчет выражений и фильтрация).

Изучаем как при написании своих формул, мер и метрик обходиться без создания вычисляемых столбцов в модели данных (ведь мы знаем — любой столбец загружает оперативную память ПК, что сказывается на быстродействии ПК и самого BI отчета).

Учимся создавать эти самые вычисляемые столбцы «виртуально» внутри кода самой меры при помощи итерационных X-функций, а также специализированной функции ADDCOLUMNS.

Учимся создавать внутри кода DAX сводные таблицы с подведением итогов и подытогов на основе функции SUMMARIZE.

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

Учимся вырезать из исходной таблицы или табличного выражения нужные для наших расчетов столбцы (от одного и более) при помощи функции SELECTCOLUMNS.

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

Осваиваем дополнительные способы создания сводных таблиц с помощью функций SUMMARIZECOLUMNS, GROUPBY и SUMMARIZE + ADDCOLUMNS.

Рассматриваем сходства, различия и особенности всех выше перечисленных вариантов построения сводных таблиц.

Отрабатываем на практике все способы создания сводных таблиц в коде DAX.

Решаем следующие аналитические задачи:

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

Изучаем принципы расчета ТОП значений на основе функции TOPN.

Учимся выводить таблицу со значениями ТОП в отчет через меру (очень актуально для Power Pivot) с настраиваемыми параметрами (количества ТОП) в самом отчете.

Решаем следующие аналитические задачи:

  • расчет ТОП-3 менеджеров по продажам
  • расчет ТОП-10 городов с самыми максимальными продажами
  • расчет средней суммы продаж у ТОП-3 городов с самыми максимальными продажами

Учимся в рамках одной таблицы выводить ТОП-N значений по каждой категории.

Решаем следующие аналитические задачи:

  • расчет в рамках одной таблицы ТОП-3 товаров по каждой товарной категории

Знакомимся с другими табличными функциями языка DAX.

МОДУЛЬ 5: Контексты DAX (виды и уровни контекстов)

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

Разбираемся с контекстом фильтра в DAX и его уровнями.

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

Разбираемся с контекстом строки в DAX.

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

Разбираемся с тем, что такое фильтр в DAX и как он образуется.

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

Рассматриваем как передаются контексты фильтра и строки по связям между таблицами.

Повторяем автоматическое распространение контекста фильтра по связям, а также отрабатываем на практике распространение контекста строки по связям таблиц.

Решаем следующие аналитические задачи:

  • расчет прибыли по каждой заявке, путем вычета из выручки затрат, переданных по контексту строки по сложно-составной связи между таблицами (многие-к-одному + один-ко-многим или, иначе говоря, по связи многие-ко-многим).

Изучаем уровни контекста строк. Что это такое, откуда они берутся и для чего нужны.

Знакомимся с основной функцией для работы с контекстами строк — EARLIER.

Производим подробный разбор уровней контекстов строк на практике.

Работаем с уровнями контекста строк при помощи функции EARLIER, рассчитывая ранг заявок по прибыли.

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

Отрабатываем на практике работу с уровнями контекста строк при помощи DAX переменных и функции EARLIER.

Решаем следующие аналитические задачи:

  • расчет ТОП-3 товаров, которые заказывают (покупают) клиенты при своем 2 заказе

МОДУЛЬ 6: Функция CALCULATE и управление контекстом фильтра (изменение контекста + агрегация)

В шестом модуле мы продолжим изучать методы глубокой аналитики. На этот раз разберем изменение контекста фильтра перед базовой аналитической агрегацией при помощи, пожалуй, самой главной функцией в DAX — CALCULATE. Подробно исследуем саму функцию CALCULATE, ее свойства, параметры, особенности. Научимся с помощью этой функции дополнять, удалять и преобразовывать внешний контекст фильтра. А также, закрепим все на практике, одновременно объединяя работу CALCULATE со всем предыдущим изученным материалом.

Изучаем как перед аналитической агрегацией изменять контекст фильтра при помощи функции CALCULATE.

Подробно разбираемся в том, что такое функция CALCULATE, зачем она нужна, как она работает и как создает внутренний контекст фильтра.

Подробно разбираем параметры фильтров функции CALCULATE и их ограничения. А также, учимся вводить режим «ИЛИ» для фильтров, которые нужно указать внутри CALCULATE.

Разбираемся с удалением предыдущих фильтров при помощи группы функций ALL, встроенных в параметры функции CALCULATE.

Дорабатываем правильную формулу расчета %, реагирующую на внешнюю пользовательскую фильтрацию.

Подробно рассматриваем процесс изменения (переопределения) внешнего контекста фильтра внутренним контекстом фильтра, образованным функцией CALCULATE. Расшифровываем этот протекающий процесс по шагам при помощи других DAX функций.

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

Разбираемся в отличиях функций CALCULATE и FILTER, а также в том, когда же использовать CALCULATE / CALCULATETABLE для фильтрации выражений / таблиц и когда использовать для этого функцию FILTER.

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

На практике отрабатываем создание внутреннего контекста фильтра функцией CALCULATE.

Учимся объединять в рамках одной меры совершенно разные расчеты для строк и подытогов (итогов) в сводной таблице.

Решаем следующие аналитические задачи:

  • расчет в рамках одной меры суммы продаж по каждому менеджеру и доли продаж товара по этому менеджеру
  • расчет доли продаж в % для менеджеров относительно общих продаж
  • расчет накопительного итога по продажам относительно дат продаж
  • расчет накопительного итога по продажам относительно кода (порядкового номера) заявки
  • расчет количества проданных товаров по условию фильтрации связанной таблицы

Изучаем понятие расширенной таблицы в DAX, попутно разъясняя методику автоматического распространения фильтра по связи один-ко-многим.

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

Решаем следующие аналитические задачи:

  • расчет суммы продаж товаров относительно разных категорий / менеджеров / поставщиков / клиентов и т.д., при связи между таблицами многие-ко-многим.

МОДУЛЬ 7: Функция CALCULATE и преобразование контекста строки в контекст фильтра (изменение контекста + агрегация)

В седьмом модуле мы продолжим разбирать функцию CALCULATE и то, каким еще способом эта функция может помочь нам в управлении контекстами DAX. А именно, подробно изучим преобразование функцией CALCULATE контекста строки в контекст фильтра. Данное свойство очень важное, так как используется, очень и очень часто, в решении реальных аналитических задач. И именно поэтому данному свойству посвящен весь седьмой модуль курса.

Разбираемся с тем, как функция CALCULATE переводит контекст строки в контекст фильтра.

Отвечаем на вопрос: каким образом сочетаются друг с другом внешний пользовательский контекст фильтра, контекст фильтра преобразованный из контекста строки функцией CALCULATE и внутренний контекст фильтра самой функции CALCULATE.

Разбираемся с тем, как функция CALCULATE переводит контекст строки в контекст фильтра при дублях строк в таблице.

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

Изучаем тонкости перевода контекста строки в контекст фильтра функцией CALCULATE при наличии в таблице связи многие-к-одному.

Разбираемся с проблемой циклической зависимости при создании вычисляемых столбцов с участием функции CALCULATE.

Обсуждаем что это за проблема, откуда она берется и как ее решить.

Окончательный пошаговый разбор процесса перевода контекста строки в контекст фильтра функцией CALCULATE, ошибки циклической зависимости и ее решения.

Отрабатываем на практике перевод функцией CALCULATE контекста строки в контекст фильтра.

Дополнительно разбираем расчет рангов на основе функции RANKX.

Решаем следующие аналитические задачи:

  • расчет частичной суммы столбца относительно столбца с категориями
  • расчет ранга товаров относительно их продаж
  • автоматическая сортировка товаров на основании сумм продаж

Разбираемся с тем, как в определенных ситуациях при помощи функции KEEPFILTERS запретить функции CALCULATE заменять контекст фильтра образованного из контекста строки, своим внутренним контекстом фильтра.

Дополнительно на практике, очень плотно повторим взаимодействие всех контекстов фильтров друг с другом (внешний пользовательский контекст фильтра + контекст фильтра, образованный из контекста строки + внутренний контекст фильтра).

МОДУЛЬ 8: Работа с датами в DAX (расчеты по датам, перенос дат, сравнение периодов, снимки на дату)

В восьмом модуле мы изучим как при помощи функции CALCULATE и ряда специализированных DAX функций для работы с датами, изменять внешний контекст фильтра по датам на новый, измененный контекст дат. То есть, разберем механику расчета выражений, перенесенных на другую дату относительно даты текущего контекста. Например, разберем как рассчитать продажи не только за текущий период, но и за аналогичный период год назад. Либо, как посчитать накопленные продажи с начала года / квартала / месяца и т.д. Всему этому и посвящен данный восьмой модуль.

Краткий обзор основных функций DAX для работы с датами.

Отрабатываем навыки правильного создания календарей в DAX.

Создаем расширенные календари с фильтрами по году, кварталу, месяцу, дням недели, по статусу дня, по неделям и декадам месяца с префиксами таблиц в самих выводимых данных.

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

Отрабатываем навыки расчета длительности периода, попутно практикуя практически весь прошедший материал курса.

Решаем следующие аналитические задачи:

  • расчет среднего интервала в днях между 1 и 2 покупкой клиента

Подробный разбор процесса расчета выражений за предыдущие / следующие дни, месяца, годы.

Рассматриваем сходство и различие функций DATEADD и PARALLELPERIOD, а также их частных случаев (SAMEPERIODLASTYEAR, группы функций PREVIOUS и NEXT).

Реализуем формулы расчета роста и прироста.

Изучаем формулы расчета накопительного итога за конкретный период дат (за год, квартал, месяц) на основе функций DATES (YTD, QTD, MTD) и TOTAL (YTD, QTD, MTD).

Раскладываем данные формулы на составные части при помощи других DAX функций. Исправляем «недочеты» этих формул в расчетах общего итога.

Разбираем методику расчета выражений на основе снимка дат (для вывода информации в отчет по товарным остаткам, суммам аккаунта банковского счета и т.д.)

Разбор методики расчета выражений на определенную дату.

В качестве практики рассмотрим создание формулы расчета прогноза продаж на конец месяца.

МОДУЛЬ 9: Работа со связями таблиц в DAX. Неактивные, многие-ко-многим, двунаправленные связи, а также связи по нескольким столбцам.

В данном девятом модуле мы изучим очень важный аспект — работу в DAX со связями таблиц в модели данных. Разберем как активировать в коде DAX неактивные связи, как активировать двунаправленные связи (что очень актуально для Power Pivot, так как в нем в самой модели данных невозможно создать двунаправленную связь). Разберем несколько методов работы со связью многие-ко-многим (один-ко-многим + многие-к-одному). А также, на практике узнаем как при помощи DAX кода связать 2 таблицы одновременно по нескольким общим столбцам (по 2-м и более).

На практике отрабатываем работу в DAX с неактивными связями.

Решаем следующие аналитические задачи:

  • расчет суммы оплат по менеджерам с разбивкой по годам и месяцам через неактивные связи между таблицами в модели данных

На практике отрабатываем работу со связью многие-ко-многим (один-ко-многим + многие-к-одному), передаем через эту связь фильтры для создания вычислений. Учимся объединять в коде DAX разные таблицы с общими столбцами, но без связей.

Решаем следующие аналитические задачи:

  • расчет суммы продаж по каждому автору / клиенту / поставщику и т.д. через связь многие-ко-многим

В данном уроке вновь поработаем со связью многие-ко-многим (один-ко-многим + многие-к-одному), сильно упрощая работу с этим типом связи путем активации в коде DAX однонаправленных связей в двунаправленные (как в Power BI, так и в Power Pivot).

Разбираемся как в коде DAX связать таблицы на основе двух и более столбцов.

Рассматриваем 2 варианта решения вопроса:

  • при помощи создания объединенных столбцов
  • при помощи функции LOOKUPVALUE

Весь материал изучаем на основе практической задачи:

  • расчет стоимости привлечения подписчика / клиента / заявки / счета / оплаты и т.д.

DAX — это просто! Я верю, у Вас все получится. Действуйте, а я помогу!

Да, я хочу изучить данный курс

БОНУСЫ

БОНУС 1: Мини-курс «DAX: Большая работа с функцией FILTER в Power BI и Power Pivot»

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

Подробно изучим саму функцию FILTER, как она работает, какие условия фильтров мы можем в ней указывать, что и с чем можем сравнивать.

Разберем отличия фильтрации функции FILTER от фильтрации, которую производят функции CALCULATE и CALCULATETABLE.

А также, поработаем с FILTER на практике, разбирая несколько сложных примеров из реальной аналитики, в том числе и задачи с динамической фильтрацией, например, такие, как расчет номера покупки клиента и тому подобное.

Подробно рассматриваем функцию FILTER, как она работает и какие условия фильтров в ней можно указывать.

Разбираем какие виды фильтров мы можем прописывать внутри функции FILTER (что и с чем мы можем сравнивать в ее условии фильтра).

Разбираемся с частым вопросом начинающих в DAX: как в рамках одного параметра условия фильтра функции FILTER указать 2 и более фильтров?

Как их указать в режимах «И»/»ИЛИ» или в обоих режимах одновременно?

В прошлых двух уроках мы при помощи функции FILTER создавали отфильтрованные таблицы в модели данных. Да, так в Power BI делать можно (в Power Pivot — нельзя, так как там в модели данных создавать таблицы на основе DAX кода не возможно).

Но, в этом ли заключается основной смысл функции FILTER?

В данном уроке разбираем истинное предназначение функции FILTER (как для Power BI, так и для Power Pivot).

Работаем с функцией FILTER на практическом примере, решая следующую аналитическую задачу:

  • расчет количества товаров, по которым были продажи в 2019 году

Разбираем еще один очень популярный вопрос среди начинающих в DAX: в чем отличие фильтрации функции FILTER от фильтрации функций CALCULATE и CALCULATETABLE?

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

Попутно, разбираясь с динамической фильтрацией, решаем на практике следующую задачу:

  • расчет количества товаров, по которым было произведено более 2-х продаж

Продолжаем работу с динамической фильтрацией, решая следующую практическую задачу:

  • рассчитать индивидуально для каждого клиента номера его покупок

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

  • произвести разницу значений строк (нижняя строка минус верхняя строка)

БОНУС 2: Мастер-класс «Производственный Календарь в DAX с праздничными и выходными днями»для Power BI и Power Pivot

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

БОНУС 3: Мастер-класс «DAX — Статический и динамический ABC-анализ (анализ Парето 80/20)»для Power BI и Power Pivot

В этом мастер-классе Вы изучите как реализовывать на языке DAX в Power BI и Power Pivot статический (в вычисляемом столбце) и динамический (через меру) ABC-анализ или, как его еще называют, анализ Парето 80/20.

Данный популярный вид анализа — это разделение совокупности единиц (товары, клиенты, поставщики, магазины и т.д.) на 2, 3 или более групп по степени их важности относительно определенной метрики (продажи, количество, прибыль и т.д.).

Например, Вы сможете распределить товары на группы по степени их прибыльности.

По классическому ABC-анализу у Вас будет 3 группы:

  1. A — наименьшее количество товаров, которые принесли 70% прибыли от всех товаров
  2. B — товары, которые принесли 20% прибыли
  3. C — товары, которые принесли 10% прибыли

По классическому анализу Парето у Вас будет 2 группы:

  1. Наименьшее количество товаров, которые принесли 80% прибыли от всех товаров
  2. Товары, которые принесли оставшиеся 20% прибыли

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

СУПЕРБОНУС

ВИДЕО-КУРС: Технические фишки DAX для построения умных и интерактивных визуализаций в отчетах Power BI и Power Pivot

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

Переходите ниже, кликайте слева по кнопкам фишек и смотрите как выглядят данные интерактивные визуализации в Power BI и Power Pivot.

ФИШКА 9: Создание меню в отчете Power BI или вывод разных визуализаций на одном и том же месте отчета, переключая кнопкой

Да, я хочу заказать данный курс

ОБ АВТОРЕ

Автор курса: Антон Будуев

Предприниматель, продюсер онлайн-проектов, основатель и основной автор проекта про сквозную BI аналитику biprosto.ru

Человек, влюбленный в аналитические комплексы Power BI и Power Pivot за их волшебство и магию в сквозной аналитике.




Еще в 2016 году я даже и не знал о существовании Power BI, Power Pivot и о DAX в частности. Но, в 2017 году, реализуя у себя в продюсерском онлайн-бизнесе сквозную аналитику, я имел счастье познакомиться с этими удивительными аналитическими BI инструментами. И тогда же, я понял, что это именно то, в чем я хочу развиваться сам. Я нашел себя! Я нашел свою тему! Стал разбираться, учиться и практиковаться в этой теме днями и ночами напролет. С тех пор уже много воды утекло…

  • был создан проект biprosto.ru, в котором я размещаю подробные статьи и видео на тему BI аналитики, и по DAX языку в частности
  • был выпущен популярный справочник DAX функций 
  • была оказана практическая помощь сотням пользователям Power BI и Power Pivot, которые обращаются ко мне с просьбой помощи в решении их аналитических задач и создании формул на языке DAX
  • были записаны и будут записываться далее (в еще большем количестве) бесплатные практические видеоуроки и видеокурсы по DAX, Power BI, Power Pivot

Ну и, наконец, был записан подробный обучающий курс «DAX — это просто», на презентационной странице которого, Вы сейчас находитесь.

Заказав данный курс, Вам будет доступен весь мой опыт и все мои навыки работы с языком DAX, а также, помощь, поддержка и общение с однокурсниками в закрытом Телеграмм-чате для учеников:

ЗАКАЗАТЬ КУРС

 

Доступ к курсу на 5 лет

МОДУЛЬ 1: Важное начало (глубокая аналитика, моделирование, простая агрегация и переменные DAX)

МОДУЛЬ 2: Итерационный расчет выражений + агрегация. Итерационные X-функции DAX

МОДУЛЬ 3: Предварительная фильтрация / удаление фильтров + агрегация. Функции фильтров в DAX

МОДУЛЬ 4: Предварительная агрегация + агрегация. Создание в DAX внутренних таблиц: сводных, с итогами, ТОП, объединенных и др. таблиц

МОДУЛЬ 5: Контексты DAX (виды и уровни контекстов)

МОДУЛЬ 6: Функция CALCULATE и управление контекстом фильтра (изменение контекста + агрегация)

МОДУЛЬ 7: Функция CALCULATE и преобразование контекста строки в контекст фильтра (изменение контекста + агрегация)

МОДУЛЬ 8: Работа с датами в DAX (расчеты по датам, перенос дат, сравнение периодов, снимки на дату)

МОДУЛЬ 9: Работа со связями таблиц в DAX. Неактивные, многие-ко-многим, двунаправленные связи, а также связи по нескольким столбцам.


ДОСТУП: Групповой чат в Телеграмм


БОНУС 1: Мини-курс «DAX: Большая работа с функцией FILTER в Power BI и Power Pivot»

БОНУС 2: Мастер-класс «Производственный Календарь в DAX с праздничными и выходными днями» для Power BI и Power Pivot

БОНУС 3: Мастер-класс «DAX — Статический и динамический ABC-анализ (анализ Парето 80/20)» для Power BI и Power Pivot


СУПЕРБОНУС: Видеокурс «Технические фишки DAX для построения умных и интерактивных визуализаций в отчетах Power BI и Power Pivot»


20 000 руб

ЗАКАЗАТЬ

P.S. Для заказа курса от юр. лица (оплата через расчетный счет), отправьте нам на емейл info@biprosto.ru запрос и реквизиты, нажав на эту ссылку

НЕМНОГО ОТЗЫВОВ…













Да, я хочу заказать курс «DAX — это просто»

Позвольте себе насладиться волшебством языка DAX, преобразуя «молчаливые» данные в глубокие, «говорящие» аналитические инсайты!