我正在尝试使用汇总来生成一个表,其中包含人员列表(由PhishingZid表示)以及该人员在12个月内出现“网络钓鱼结果”为“失败”的次数。每个人的12个月期间将从CalendarMonth索引表示的日期开始,然后我想计算该月索引和月索引- 11之间的失败次数。
例如,假设网络钓鱼表中的当前行的ZID值为wzqc51,CalendarMonth索引= 27。在CALCULATE函数中,我想计算月份索引的失败次数,介于16和27之间。下面尖括号里的那块我看不懂。
此外,日历和网络钓鱼之间有一个1:M,日历表不是传统的每日日历。这是一个月历,其中月份指数1是数据的第一年和第一个月,月份指数27是我们拥有的数据的第27年和第27个月。
SUMMARIZE(
Phishing,
Phishing[Zid],
Calendar[Month Index],
"Count", CALCULATE(
COUNT(Phishing[Zid]),
< I want to calculate a count between the current month index and month index - 11 >
Phishing2[Phishing Outcome]= "Fail"
)
)
输出应如下所示:
Zid Month Index Count
QZ4TIN 27 4
这意味着Zid为QZ4TIN的用户在月份索引16和27之间失败了四次。
发布于 2020-09-26 01:41:57
在没有数据可供测试的情况下编写DAX有点棘手,但我怀疑您可能想要这样的东西
FILTER (
ALL ( Calendar ),
Calendar[Month Index] <= EARLIER ( Calendar[Month Index] ) &&
Calendar[Month Index] >= EARLIER ( Calendar[Month Index] ) - 11
)
其中EARLIER引用较早的行上下文(来自汇总而不是过滤器),与日期或时间无关。
您可能希望在计算之前创建一个变量,而不是使用前面的
SUMMARIZE (
Phishing,
Phishing[Zid],
Calendar[Month Index],
"Count",
VAR CurrMonth = Calendar[Month Index]
RETURN
CALCULATE (
COUNT ( Phishing[Zid] ),
FILTER (
ALL ( Calendar ),
Calendar[Month Index] <= CurrMonth &&
Calendar[Month Index] >= CurrMonth - 11
),
Phishing2[Phishing Outcome] = "Fail"
)
)
https://stackoverflow.com/questions/64068575
复制相似问题