You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于多筛选条件计算员工月度时段平均值(DAX公式求助)

解决方案:按员工&月份计算数值平均值

根据你的需求,这里提供几种可行的DAX方案,同时说明原公式的问题:

方案1:直接使用度量值(推荐用于报表动态展示)

如果是在Power BI报表中配合姓名、月份维度使用,直接创建度量值即可:

月度平均值 = AVERAGE('Table'[Values])

当你把Name和Month拖入矩阵/表格视觉对象时,Power BI会自动按这两个维度分组,计算每组的数值平均值,完全符合你要的John九月(13+29)/2=21、十月(42+32)/2=37的结果。

方案2:创建计算列(用于在原表中直接显示每行对应的月度平均值)

如果需要在原数据表中新增一列,显示当前行所属员工&月份的平均值,用以下DAX:

月度平均值_计算列 = 
CALCULATE(
    AVERAGE('Table'[Values]),
    ALLEXCEPT('Table', 'Table'[Name], 'Table'[Month])
)

ALLEXCEPT函数会保留Name和Month的筛选上下文,只移除其他无关筛选,确保计算的是当前员工当月所有数值的平均。

方案3:生成独立的汇总表

如果需要生成一个仅包含员工、月份、对应平均值的汇总表,使用SUMMARIZE:

月度平均汇总表 = 
SUMMARIZE(
    'Table',
    'Table'[Name],
    'Table'[Month],
    "月度平均值", AVERAGE('Table'[Values])
)

原公式问题说明

你原公式CALCULATE(AVERAGE('Table'[Values]), CONTAINSSTRING('Table'[Month]) && 'Table'[Name])存在两个关键问题:

  1. CONTAINSSTRING函数需要两个参数(待检查字符串、要匹配的子串),你只写了第一个参数,语法无效;
  2. 'Table'[Name]没有逻辑判断条件,无法作为筛选器使用,导致筛选上下文不成立,所以得不到正确结果。

内容的提问来源于stack exchange,提问作者DorottyaB.H.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 21:06:11