吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2119|回复: 6
收起左侧

[求助] POWER BI/DAX,动态时间段计数的问题

[复制链接]
cqwcns 发表于 2022-3-3 18:05
POWER BI中,需要统计一列数据【投诉数】,我希望有一个度量值能动态统计出近7天的总计。
我尝试这样写:



周期投诉数 =
CALCULATE(

    COUNTA('重复投诉率'[是否重复投诉]),

    FILTER(

        ALL('日期表'),

        '日期表'[日期] >= DATEADD('日期表'[日期], -7, MONTH) && '日期表'[日期] <= MAX ( '日期表'[日期] )

    )

)


但结果不是我想要的:


微信图片_20220303175807.png

如上图,以3月2日为例,近7天的投诉量正确是2316,但我的代码统计出来是32499。


显然是'日期表'[日期] >= DATEADD('日期表'[日期], -7, MONTH)这句没有生效。




不知道应该怎么改。


请指教,谢谢

image.png

免费评分

参与人数 1吾爱币 +1 收起 理由
雨过之后是晴天 + 1 操作许久 无法实现~

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

飞鸟热 发表于 2022-3-3 18:24
本帖最后由 飞鸟热 于 2022-3-3 21:38 编辑

计数 =
var sday = SELECTEDVALUE('日期表'[日期])
return
CALCULATE(COUNTA('重复投诉率'[是否重复投诉]),DATEDIFF('日期表'[日期],sday,DAY)<=7)

免费评分

参与人数 1吾爱币 +2 热心值 +1 收起 理由
cqwcns + 2 + 1 我很赞同!

查看全部评分

雨过之后是晴天 发表于 2022-3-4 09:59
动态投放的展现方式是? 希望可以直接选择一个日期查看前七天的 或者动态选择日期 动态查看某几天的?
 楼主| cqwcns 发表于 2022-3-4 14:59
飞鸟热 发表于 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:25
本帖最后由 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 函数只接受列引用作为参数。不知道怎么改才行,请指教,谢谢。
飞鸟热 发表于 2022-3-4 17:17
VAR _DATA = CALCULATE( VALUES('重复投诉率'[某个列]) , '重复投诉率'[是否重复投诉] = "重复投诉")

参数变一下应该就可以了。
另外filter的写法已经支持简化了。

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
cqwcns + 1 + 1 用心讨论,共获提升!

查看全部评分

 楼主| cqwcns 发表于 2022-3-5 11:24
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 函数只接受列引用作为参数。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 15:57

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表