Фильтрация и подсчёт с DAX

Функции DAX в Power BI

Maarten Van den Broeck

Content Developer at DataCamp

Функции фильтрации

  • Фильтры применяются к контексту фильтра
  • Фильтры имеют приоритет над любым визуальным элементом
Total Sales = SUM(Orders[Sales])

Функции DAX в Power BI

Функции фильтрации

  • Фильтры применяются к контексту фильтра
  • Фильтры имеют приоритет над любым визуальным элементом
Total Sales = SUM(Orders[Sales])
CALCULATE(<expression>, 
            <filter1> , [<filter2> [, ...]])
  • Используется с промежуточными функциями
Total Sales ALL = CALCULATE(
                    [Total Sales],
                    ALL(Orders))

$$ $$ $$

Region Total Sales
Central $501,239.89
East $678,781.24
South $391,721.91
West $725,457.82
TOTAL $2,297,200.86
Функции DAX в Power BI

Функции фильтрации

  • Фильтры применяются к контексту фильтра
  • Фильтры имеют приоритет над любым визуальным элементом
Total Sales = SUM(Orders[Sales])
CALCULATE(<expression>, 
            <filter1> , [<filter2> [, ...]])
  • Используется с промежуточными функциями
Total Sales ALL = CALCULATE(
                    [Total Sales],
                    ALL(Orders))

$$ $$ $$

Region Total Sales Total Sales ALL
Central $501,239.89 $2,297,200.86
East $678,781.24 $2,297,200.86
South $391,721.91 $2,297,200.86
West $725,457.82 $2,297,200.86
TOTAL $2,297,200.86 $2,297,200.86
Функции DAX в Power BI

Дополнительные параметры фильтрации

  • FILTER(<table>, <filter>)
    • Возвращает отфильтрованную таблицу
Total Sales Chuck = 
CALCULATE(
    [Total Sales],
    FILTER(Fact_Orders,
        RELATED(Dim_Sales[Salesperson]) = "Chuck"))
Функции DAX в Power BI

Дополнительные параметры фильтрации

  • FILTER(<table>, <filter>)
    • Возвращает отфильтрованную таблицу
Total Sales Chuck = 
CALCULATE(
    [Total Sales],
    FILTER(Fact_Orders,
        RELATED(Dim_Sales[Salesperson]) = "Chuck"))
Total Sales Total Sales Chuck
$2,297,200.86 $235,856.05

$$

  • RELATED() используется для получения значений из другой таблицы
Функции DAX в Power BI

Дополнительные параметры фильтрации

  • CROSSFILTER(<col1>, <col2>, <direction>)
    • Задаёт направление перекрёстной фильтрации между двумя столбцами

Однонаправленная связь между двумя таблицами: Fact_Orders и Dim_Returns

CROSSFILTER(Dim_Returns[Order ID], 
            Fact_Orders[Order ID],
            Both)
  • Переопределяет направление связи в модели данных
Функции DAX в Power BI

Преимущества фильтрации в DAX

  • Повышение производительности
    • Исключение лишних данных
    • Определение конкретных связей между таблицами
  • Повторное использование
    • Обращение к другим вычисляемым мерам
  • Сложные вычисления
    • Лаконичный синтаксис
Функции DAX в Power BI

Подсчёт

  • COUNT(<column>)
    • Возвращает количество строк с числами, датами или строками в столбце
  • COUNTA(<column>)
    • Возвращает количество строк с числами, датами, строками или логическими значениями в столбце
  • COUNTBLANKS(<column>)
    • Возвращает количество пустых строк
  • DISTINCTCOUNT(<column>)
    • Возвращает количество уникальных значений в столбце
  • COUNTROWS(<table>)
    • Возвращает количество строк с числами, датами и строками в таблице
Функции DAX в Power BI

Давайте потренируемся!

Функции DAX в Power BI

Preparing Video For Download...