Функция DAX Count ошибается где-то

Файл: count.xlsx, расположенный в репозитории GitHub.

Программное обеспечение: MS Excel 2016 Power Pivot


Я точно знаю, что в листе EXCEL 10921 строка.

Когда я создаю показатель DAX, Total_Incidents:=Count(Graffiti[CREATED_DATE]) значение приходит к 10,921. Я считаю CREATED_DATE, потому что нет значения NULL.

Существует три статуса: «Открыто», «Ожидание» и «Закрыто», которые рассчитываются следующим образом.

Total_Closed:=sumx(FILTER(Graffiti,Graffiti[STATUS]="Closed"),[Total_Incidents])

Total_Closed= 5354, ‹- правильно

Однако Total_Opened неверно

Total_Opened:=sumx(FILTER(Graffiti,Graffiti[STATUS]="Open"),[Total_Incidents])

Total_Opened= 4483 предполагается, что это 4481

Однако Total_Pending верна

Total_Pending:=sumx(FILTER(Graffiti,Graffiti[STATUS]="Pending"),[Total_Incidents])

Total_Pending= 75, ‹- правильно

Когда я складываю итоги, я получаю еще 2 инцидента из-за Total_Opened

Total_Calc:=[Total_Closed]+[Total_Opened]+[Total_Pending]

Total_Calc= 10923 ‹- неверно, должно быть 10921

Почему неточность в Total_Opened? Не могу понять этого.

введите здесь описание изображения


person Rhonda    schedule 01.09.2017    source источник
comment
Какой номер вы получите, если запустите это: COUNTA(Graffiti[STATUS])   -  person Haris    schedule 01.09.2017


Ответы (1)


Я изначально ответил так:

«Я знаю, что вы сказали, что считаете CREATED_DATE, потому что нет значения NULL, но проверяли ли вы пробелы в столбце CREATE_DATE? Я продублировал вашу проблему, указав пустые даты. У вас может быть две пустые даты.

Вы можете использовать COUNTBLANK(Graffiti[CREATED_DATE]), чтобы проверить, есть ли у вас пробелы ".

Затем я заметил, что у вас есть ссылка на ваш файл Excel на GitHub, так что ...

Скачал и искал пробелы в ваших датах - их не было.

Поэтому я добавил столбцы для Total_Closed, Total_Opened, Total_Pending и Total_Calc. (Я использовал ваши формулы, но вместо sumx я использовал countx в каждой формуле, чтобы я мог просто сравнивать количество строк.)

Total_Incidents:=Count(Graffiti[CREATED_DATE])

Total_Closed:=countx(FILTER(Graffiti,Graffiti[STATUS]="Closed"),[Total_Incidents])

Total_Opened:=countx(FILTER(Graffiti,Graffiti[STATUS]="Open"),[Total_Incidents])

Total_Pending:=countx(FILTER(Graffiti,Graffiti[STATUS]="Pending"),[Total_Incidents])

Total_Calc:=[Total_Closed]+[Total_Opened]+[Total_Pending]

Вот что у меня получилось:

Total_Incidents: 10921

Всего закрыто: 6365

Всего_открыто: 4481

Total_Pending: 75

Total_Calc: 10921

Эти подсчеты выглядят правильно.

Полагаю, вы выяснили и исправили свою проблему.

person Marc Pincince    schedule 01.09.2017
comment
Ох .... использование sumx не имело смысла. Это похоже на суммирование всех дат (кто может взять сумму дат?). Но сейчас я в недоумении. В чем разница между sumx и countx, если они дали одинаковый результат для Total_Closed и Total_Calc? - person Rhonda; 02.09.2017
comment
Вы не суммировали свои даты. Вы их посчитали. Вы просуммировали свои Total_Incidents. Суммируя их с помощью sumx, складываются значения в столбце Total_Incidents. С countx вы подсчитываете количество появлений этих значений ... в основном, вы подсчитываете строки. - person Marc Pincince; 02.09.2017
comment
Спасибо @ marc-pincince - person Rhonda; 05.09.2017