【问题标题】:Count the repetition of values in last 5 days in DAX计算 DAX 中过去 5 天的重复值
【发布时间】:2020-03-12 18:50:17
【问题描述】:

我有一个每天生成的反病毒扫描数据集,并且可以追溯到过去很多天,在此我必须计算机器在过去 5 天内出现不合规的次数,目前我是使用以下 DAX 公式创建计算列

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

但是,问题是每台机器都有多个 appid,因此不是每台机器每天计算 1 个计数,最后 5 天应该最多 5 个,我得到 count(appid),

例如在附表中,如果我想查看机器“A”在过去两天 11/03 和 10/03 重复了多少次,那么它应该给我 2 的计数,这也是我的要求,但是相反,我得到了 5 个计数,因为机器 A 在 11 月 3 日有 2 个 Appid,在 10 月 3 日有 3 个 Appid,这是我的问题,我只想要过去 5 天按日期区分的机器组计数。有没有人可以帮帮我。

enter image description here

【问题讨论】:

  • 尝试使用DISTINCTCOUNT('SCCM Antivirus_RBF'[Date]) 代替COUNT('SCCM Antivirus_RBF'[MachineName])
  • 没用,我在过去 5 天内几乎每台机器都重复了 25 次,应该最多 5 次,每天 1 次
  • 看看我的回答。它似乎适用于您的示例数据。当然,您需要添加另一个过滤器才能获得最近 5 天的数据。

标签: powerbi dax


【解决方案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"
)

【讨论】:

    猜你喜欢
    • 2021-04-13
    • 1970-01-01
    • 2012-09-10
    • 2014-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    相关资源
    最近更新 更多