Содержание статьи: (кликните, чтобы перейти к соответствующей части статьи):


Антон БудуевПриветствую Вас, дорогие друзья, с Вами Будуев Антон. В данной статье мы рассмотрим функции DAX из так называемой группы COUNT, отвечающей за подсчет количества значений, ячеек или строк при составлении формул в Power BI и Excel (Powerpivot).

И это функции COUNT, COUNTA, COUNTX, COUNTAX, COUNTBLANK, DISTINCTCOUNT и COUNTROWS, входящие в категорию статистических функций агрегирования DAX.

Для Вашего удобства, рекомендую скачать «Справочник DAX функций для Power BI и Power Pivot» в PDF формате.

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

А также, подписывайтесь на наши социальные сети. Потому что именно в них, Вам будут доступны оперативно и каждый день наши актуальные фишки, секреты, наработки, примеры, кейсы, полезные советы, видео и статьи по темам сквозной BI аналитики (Power BI, DAX, Power Pivot, Excel…): Вконтакте, Инстаграм, Фейсбук, YouTube.

 

DAX функции COUNT, COUNTA, COUNTX и COUNTAX в Power BI и Power Pivot

Итак, все эти функции COUNT, COUNTA, COUNTX и COUNTAX — отвечают за подсчет количества ячеек в Power BI и Power Pivot, но содержание ячеек в каждом из этих вариантов различается.

  1. COUNT () — подсчитывает в столбце количество ячеек, которые содержат в себе числовое значение. В качестве числового значения признаются числа, даты и число, записанное в текстовом типе данных. Если в строке учитываемых значений нет, то функция выдаст 0. Если в таблице отсутствуют строки, то COUNT выдаст пустое значение.

    Синтаксис: COUNT ([Столбец])
  2. COUNTA () — подсчитывает непустые ячейки в столбце. То есть, количество тех ячеек, которые в себе содержат хоть какое-то значение: числа, даты, любой текст или значения логического типа.

    Синтаксис: COUNTA ([Столбец])
  3. COUNTX () — подсчитывает количество строк, содержащие в себе числовое значение, получившееся в результате построчного выполнения выражения. В качестве числового значения признаются числа, даты и число, записанное в текстовом типе данных.

    Синтаксис: COUNTX (‘Таблица’; Выражение), где:

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

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

  4. COUNTAX () — работает точно также, как и функция выше COUNTX, но в данном случае уже на основе получившихся построчных результатов, COUNTAX подсчитывает непустые значения (числа, даты, текст, значения логического типа)

    Синтаксис: COUNTAX (‘Таблица’; Выражение)

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

Исходная таблица

 

Записав следующую DAX формулу с участием COUNTAX ():

Подсчет = COUNTAX('Таблица'; "Значение = " & 'Таблица'[Столбец1])

В качестве результата получим количество = 5

Результат выполнения функции COUNTAX

 

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

Виртуальная таблица, создающаяся при работе COUNTAX

 

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

А так как COUNTAX подсчитывает ячейки с любыми типами значений, в том числе и с текстовым типом, то в итоге возвращает количество, равное 5.

 

DAX функция COUNTBLANK в Power BI и Power Pivot

COUNTBLANK () — подсчитывает количество пустых ячеек в столбце.

Синтаксис: COUNTBLANK ([Столбец])

Пример: имеется таблица с одним столбцом, содержащая не только разные типы данных (числа, текст, даты), но и пустые ячейки:

Исходная таблица

Если мы составим следующую формулу с участием COUNTBLANK:

Подсчет = COUNTBLANK('Таблица'[Столбец1])

То COUNTBLANK вернет ответ: количество пустых ячеек = 2

Результат выполнения функции COUNTBLANK

 

DAX функция DISTINCTCOUNT или DISTINCT COUNT в Power BI и Power Pivot

Данную функцию почему-то очень часто называют неправильно, в два слова DISTINCT COUNT, хотя правильно писать в одно единое слово DISTINCTCOUNT.

Итак, DISTINCTCOUNT () — подсчитывает количество уникальных значений ячеек в столбце

Синтаксис: DISTINCTCOUNT ([Столбец])

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

Исходная таблица менеджеров

 

Если мы подсчитаем количество уникальных фамилий менеджеров при помощи следующей формулы:

Подсчет = DISTINCTCOUNT ('Таблица'[Менеджеры])

То ответ будет таким: количество уникальных фамилий менеджеров = 3

Результат выполнения функции DISTINCTCOUNT

 

DAX функция COUNTROWS в Power BI и Power Pivot

COUNTROWS () — часто используемая на практике функция, которая подсчитывает количество строк в таблице.

Синтаксис: COUNTROWS (‘Таблица’)

Пример: если мы подсчитаем количество строк в таблице «Менеджеры» из примера выше, то COUNTROWS выдаст ответ 4 строки.

Результат выполнения функции COUNTROWS

 

COUNT и другие функции (CALCULATE, FILTER, IF)

Функции группы COUNT (подсчет количества) сами по себе используются довольно редко, обычно они нужны для каких-либо промежуточных вычислений в партнерстве с другими функциями. Например, функции группы COUNT используются совместно с CALCULATE, FILTER, с условиями «если» IF и другими функциями DAX.

Ну, как пример, можно подсчитать количество строк в таблице после применения фильтра функции FILTER:

Подсчет = 
COUNTROWS(
    FILTER(
        'ОбщиеПродажи'; 
        'ОбщиеПродажи'[Отдел] = "Первый отдел"
    )
)

Или после изменения фильтра при использовании CALCULATE:

Подсчет = 
CALCULATE(
    COUNTROWS('ОбщиеПродажи');
    'ОбщиеПродажи'[Отдел] = "Первый отдел"
)

 

На этом, по функциям группы COUNT в Power BI и Power Pivot в данной статье, все.
 

Подробное ВИДЕО «DAX функции COUNT (A, X, AX), COUNTBLANK, DISTINCTCOUNT, COUNTROWS для Power BI (Pivot)»

Ссылки из видео:
1) [Регистрируйтесь в бесплатном экспресс курсе] Быстрый старт в языке функций и формул DAX для Power BI и Power Pivot: зарегистрироваться
2) [Скачивайте PDF] Справочник DAX функций для Power BI и Power Pivot на русском языке: скачать
 
 
Антон БудуевС уважением, Будуев Антон.
Проект «BI — это просто»

 

 

 

Присоединяйтесь к нашим социальным сетям

Именно в них оперативно и каждый день Вам будут доступны наши актуальные фишки, секреты, наработки, примеры, кейсы, полезные советы, видео и статьи 

по темам сквозной BI аналитики (Power BI, DAX, Power Pivot, Excel...)

Наша группа Вконтакте Мы в Инстаграме Наша группа в Фейсбук Наш YouTube канал
Наша группа VK
Подписаться на наш YouTube канал

 

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

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

 

Понравился материал статьи?
Избранные закладкиДобавьте эту статью в закладки Вашего браузера, чтобы вернуться к ней еще раз. Для этого, прямо сейчас нажмите на клавиатуре комбинацию клавиш Ctrl+D


Вам это может быть интересно. Другие статьи нашего обучающего портала:


3 thoughts on “Функции подсчета количества в DAX: COUNT, COUNTA, COUNTX, COUNTAX, COUNTBLANK, DISTINCTCOUNT и COUNTROWS (для Power BI и Power Pivot)”

  1. Антон, добрый день! Спасибо за отличную статью. А не подскажете формулу с помощью которой можно было бы получить следующий результат. Имеем три столбца:

    Дата Обращение Имя
    10.08.2018 3678378 Дима
    10.08.2018 3678379 Петя
    10.08.2018 3678381 Петя
    10.08.2018 3678382 Дима
    10.08.2018 3678387 Вова
    10.08.2018 3678390 Дима
    10.08.2018 3678398 Вова

    Нужно добавить четвертый, где был бы посчитан порядковый номер обращения в отдельности по каждому имени, а именно вот такой результат:
    Дата Обращение Имя Порядковый номер
    10.08.2018 3678378 Дима 1
    10.08.2018 3678379 Петя 1
    10.08.2018 3678381 Петя 2
    10.08.2018 3678382 Дима 2
    10.08.2018 3678387 Вова 1
    10.08.2018 3678390 Дима 3
    10.08.2018 3678398 Вова 2

    1. Роман, здравствуйте.

      Формула будет такой, с участием DAX функций EARLIER и FILTER:

      Порядковый номер = 
      COUNTROWS(
          FILTER(
              'Таблица1';
              'Таблица1'[Имя] = EARLIER('Таблица1'[Имя])
              &&
              'Таблица1'[Обращение]< =EARLIER('Таблица1'[Обращение])
          )
      )
      

      DAX формула подсчета порядкового номера

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

* Заполняя форму отправки комментария своими персональными данными (имя, email, сайт и др.), Вы автоматически подтверждаете свое согласие на обработку своих персональных данных