Power BI按小时统计满足销量阈值的时段数实现问题
解决Power BI中统计符合销量阈值的小时数问题
核心思路
要统计按小时聚合后,满足Sold Units≥500的小时数量,关键是先对每个小时单独计算符合筛选条件的销量,再统计达标的小时数,而非直接对全行数据计算总量。
可行方案1:使用COUNTX迭代小时维度
直接基于现有Sold Units度量值,迭代所有唯一小时并判断达标情况:
Hours with Sold Units Over 500 = COUNTX( VALUES(Table1[Hour]), // 获取Table1中所有不重复的小时值 VAR HourlySales = [Sold Units] // 计算当前小时对应的销量(自动继承小时筛选上下文) RETURN IF(HourlySales >= 500, 1, BLANK()) // 达标则计数1,否则不计数 )
可行方案2:先构建小时级销量表再筛选
通过SUMMARIZE生成小时-销量的聚合表,再过滤统计达标行数:
Hours with Sold Units Over 500 = VAR HourlySalesTable = SUMMARIZE( Table1, Table1[Hour], // 按小时分组 "@HourlySales", [Sold Units] // 计算每组的销量 ) RETURN COUNTROWS( FILTER(HourlySalesTable, [@HourlySales] >= 500) // 过滤出销量≥500的小时组 )
原尝试失败原因说明
你之前的代码未按小时聚合,直接对Table1的行进行计数,且未正确传递小时级的筛选上下文给Sold Units计算,导致使用的是全局总销量而非单小时销量,因此无法得到正确结果。
内容的提问来源于stack exchange,提问作者thne123
相关产品推荐
相关产品推荐

