Power BI矩阵添加周平均值列:DAX公式实现求助
实现Power BI矩阵周平均值列的DAX方案
核心DAX度量值
直接创建以下度量值来计算周平均值:
Assembly Weekly Avg Cases Per/Hr = VAR CurrentWeek = SELECTEDVALUE(Query1[Corp_Wk_Num]) RETURN CALCULATE( AVERAGEX( VALUES(Query1[Weekday 3]), [Assembly Actual Cases Per/Hr] ), ALLSELECTED(Query1[Weekday 3]), Query1[Corp_Wk_Num] = CurrentWeek )
公式说明
- CurrentWeek变量:锁定矩阵当前行对应的周数,确保计算范围不跨周。
- AVERAGEX函数:遍历当前周的所有工作日,对每个工作日的
Assembly Actual Cases Per/Hr值取平均,自动忽略原度量值返回的空白(即实际工时为0的情况)。 - ALLSELECTED(Query1[Weekday 3]):清除矩阵中“工作日”列的筛选上下文,让计算覆盖当前周的所有工作日,而非仅当前单元格的单个工作日。
- Query1[Corp_Wk_Num] = CurrentWeek:严格限定计算范围为当前选中的周,避免跨周聚合。
矩阵配置步骤
- 将
Corp_Wk_Num拖至矩阵行区域,Weekday 3拖至列区域。 - 将原度量值
Assembly Actual Cases Per/Hr和新创建的Assembly Weekly Avg Cases Per/Hr拖至值区域。 - 调整值区域的列顺序,即可得到目标效果。
可选优化
若只需计算工作日(周一至周五)的周平均,可修改CALCULATE的筛选条件:
Assembly Weekly Workday Avg Cases Per/Hr = VAR CurrentWeek = SELECTEDVALUE(Query1[Corp_Wk_Num]) RETURN CALCULATE( AVERAGEX( VALUES(Query1[Weekday 3]), [Assembly Actual Cases Per/Hr] ), ALLSELECTED(Query1[Weekday 3]), Query1[Corp_Wk_Num] = CurrentWeek, Query1[Weekday 3] IN {"Monday","Tuesday","Wednesday","Thursday","Friday"} )
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

