DISTINCTCOUNT и DISTINCTCOUNTNOBLANK в DAX считает пустые строки
Привет. Хочу рассказать про замечательные функции DAX DISTINCTCOUNT и DISTINCTCOUNTNOBLANK и их применение в аналитике. А также разобрать ситуацию, когда DISTINCTCOUNTNOBLANK которая должна считать без пустых строк их всё же учитывает и показывает неверные данные.
DISTINCTCOUNT и DISTINCTCOUNTNOBLANK
Данные функции в языке DAX позволяют считать уникальные значения по строчкам. Например, есть у вас столбец с данными, в нём присутствуют повторения или пропуски. Вот первая функция считает уникальные значения с учётом пропусков. Вторая — без пропусков.
DISTINCTCOUNTNOBLANK считает с пустыми значениями
Бывает ситуация, когда при условиях, как на картинке выше, функция возвращает также 10 значений, хотя в ячейке явно ничего нет. Дело в том, что для Power Query визуальная пустота ячейки ещё не значит, что она пуста. Я столкнулся с этим когда делал доп. обработку выводя в условной конструкции if значение “”. То есть на картинке выше в пустой ячейке у меня на самом деле был скрытый код. Из-за этого и была ошибка.
Чтобы избежать этой ошибки, нужно фильтровать доп. функцией те значения, которые считать не нужно. Это делается с помощью CALCULATE
То есть я говорю, используй функцию DISTINCTCOUNTNOBLANK за исключением значений где есть ноль. Для картинки выше, вместо нудя в фильтр нужно ставить <> “”