DISTINCTCOUNT и DISTINCTCOUNTNOBLANK в DAX считает пустые строки

DISTINCTCOUNT и DISTINCTCOUNTNOBLANK в DAX считает пустые строки

17.10.2023 0 Автор pavezlo

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

DISTINCTCOUNT и DISTINCTCOUNTNOBLANK

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

DISTINCTCOUNTNOBLANK считает с пустыми значениями

Бывает ситуация, когда при условиях, как на картинке выше, функция возвращает также 10 значений, хотя в ячейке явно ничего нет. Дело в том, что для Power Query визуальная пустота ячейки ещё не значит, что она пуста. Я столкнулся с этим когда делал доп. обработку выводя в условной конструкции if значение “”. То есть на картинке выше в пустой ячейке у меня на самом деле был скрытый код. Из-за этого и была ошибка.

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

То есть я говорю, используй функцию DISTINCTCOUNTNOBLANK за исключением значений где есть ноль. Для картинки выше, вместо нудя в фильтр нужно ставить <> “”