Подсчитайте повторение значений за последние 5 дней в DAX

У меня есть набор данных антивирусного сканирования, который генерируется ежедневно и заходит много дней назад, в этом мне нужно подсчитать, сколько раз машина обнаруживала несоответствие за последние 5 дней, в настоящее время я использую ниже DAX формула для создания вычисляемого столбца

Repetition = CALCULATE(COUNT('SCCM Antivirus'[MachineName]),ALLEXCEPT('SCCM Antivirus','SCCM
 Antivirus'[MachineName]),'SCCM Antivirus'[ComplianceStatus]= "Non-
Compliant",'SCCM Antivirus'[HRs]<= 120)

Но проблема в том, что на каждой машине есть несколько приложений, поэтому вместо того, чтобы рассчитывать 1 счетчик в день на машину, который должен быть максимум 5 за последние 5 дней, я получаю count (appid),

например в прилагаемой таблице, если я хочу увидеть, сколько раз машина «А» повторилась за последние два дня, 11/03 и 10/03, тогда она должна дать мне счет 2, и это то, что мне нужно, но вместо этого я получаю счет 5, так как у машины A 2 Appid 11/03 и 3 Appid 10/03, и это моя проблема. Я хочу, чтобы количество групп машин было разным по дате только за последние 5 дней. Не могли бы некоторые помочь мне.

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


person AKG    schedule 12.03.2020    source источник
comment
Попробуйте DISTINCTCOUNT('SCCM Antivirus_RBF'[Date]) вместо COUNT('SCCM Antivirus_RBF'[MachineName])   -  person Marco Vos    schedule 12.03.2020
comment
Не сработало, я получаю 25 повторений почти на каждую машину за последние 5 дней, что должно быть максимум 5, 1 в день.   -  person AKG    schedule 12.03.2020
comment
Ознакомьтесь с моим ответом. Кажется, это работает с вашими образцами данных. Конечно, вам нужно добавить еще один фильтр, чтобы получить только последние 5 дней.   -  person Marco Vos    schedule 12.03.2020


Ответы (1)


Попробуйте DISTINCTCOUNT('SCCM Antivirus_RBF'[Date]) вместо COUNT('SCCM Antivirus_RBF'[MachineName])

Что-то вроде этого:

Repetition =
CALCULATE (
    DISTINCTCOUNT ( 'SCCM Antivirus_RBF'[Date] ),
    ALLEXCEPT ( 'SCCM Antivirus_RBF', 'SCCM Antivirus_RBF'[MachineName] ),
    'SCCM Antivirus_RBF'[Status] = "Non-Compliant"
)

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

person Marco Vos    schedule 12.03.2020