POWER BI/DAX,动态时间段计数的问题
POWER BI中,需要统计一列数据【投诉数】,我希望有一个度量值能动态统计出近7天的总计。我尝试这样写:
周期投诉数 =
CALCULATE(
COUNTA('重复投诉率'[是否重复投诉]),
FILTER(
ALL('日期表'),
'日期表'[日期] >= DATEADD('日期表'[日期], -7, MONTH) && '日期表'[日期] <= MAX ( '日期表'[日期] )
)
)
但结果不是我想要的:
如上图,以3月2日为例,近7天的投诉量正确是2316,但我的代码统计出来是32499。
显然是'日期表'[日期] >= DATEADD('日期表'[日期], -7, MONTH)这句没有生效。
不知道应该怎么改。
请指教,谢谢
本帖最后由 飞鸟热 于 2022-3-3 21:38 编辑
计数 =
var sday = SELECTEDVALUE('日期表'[日期])
return
CALCULATE(COUNTA('重复投诉率'[是否重复投诉]),DATEDIFF('日期表'[日期],sday,DAY)<=7) 动态投放的展现方式是? 希望可以直接选择一个日期查看前七天的 或者动态选择日期 动态查看某几天的? 飞鸟热 发表于 2022-3-3 18:24
计数 =
var sday = SELECTEDVALUE('日期表'[日期])
return
感谢,但大佬的代码少了一个条件,我稍微改了一下,功能实现。
周期内重复投诉 =
VAR _DATE = SELECTEDVALUE('日期表'[日期])
VAR _RANGE = 7
RETURN
CALCULATE(
COUNTA('重复投诉率'[是否重复投诉]),DATEDIFF('日期表'[日期],_DATE,DAY) < _RANGE && '日期表'[日期] <= MAX ( '日期表'[日期] )
) 本帖最后由 cqwcns 于 2022-3-4 15:26 编辑
飞鸟热 发表于 2022-3-3 18:24
计数 =
var sday = SELECTEDVALUE('日期表'[日期])
return
大佬,还有一个问题。
我通过以下代码选取了投诉总数,即分母。
投诉总数 =
VAR _DATE = SELECTEDVALUE('日期表'[日期])
VAR _RANGE = 30
RETURN
CALCULATE(
COUNTA('重复投诉率'[是否重复投诉]),DATEDIFF('日期表'[日期],_DATE,DAY) < _RANGE && '日期表'[日期] <= MAX ( '日期表'[日期] )
)
但我还要选取分子,如果选取分子还有加一个条件,就是'重复投诉率'[是否重复投诉] = "重复投诉"。
我以为可以这样:
重复投诉总数 =
VAR _DATA = FILTER('重复投诉率', '重复投诉率'[是否重复投诉] = "重复投诉")
VAR _DATE = SELECTEDVALUE('日期表'[日期])
VAR _RANGE = 30
RETURN
CALCULATE(
COUNTA(_DATA),DATEDIFF('日期表'[日期],_DATE,DAY) < _RANGE && '日期表'[日期] <= MAX ( '日期表'[日期] )
)
但报错:COUNTA 函数只接受列引用作为参数。不知道怎么改才行,请指教,谢谢。 VAR _DATA = CALCULATE( VALUES('重复投诉率'[某个列]) , '重复投诉率'[是否重复投诉] = "重复投诉")
参数变一下应该就可以了。
另外filter的写法已经支持简化了。 cqwcns 发表于 2022-3-4 15:25
大佬,还有一个问题。
我通过以下代码选取了投诉总数,即分母。
这样吗?
重复投诉总数 =
VAR _DATA = CALCULATE( VALUES('重复投诉率'[是否重复投诉]) , '重复投诉率'[是否重复投诉] = "重复投诉")
VAR _DATE = SELECTEDVALUE('日期表'[日期])
VAR _RANGE = 30
RETURN
CALCULATE(
COUNTA(_DATA),DATEDIFF('日期表'[日期],_DATE,DAY) < _RANGE && '日期表'[日期] <= MAX ( '日期表'[日期] )
)
不行,报错一样,还是COUNTA 函数只接受列引用作为参数。{:301_972:}
页:
[1]