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

如何基于日期筛选返回列并计算日平均Value(DAX)

按日期计算Value平均值的DAX实现方案

针对你需要按日期筛选对应Value并计算平均值的需求,以下是两种常用的DAX实现方式,分别适用于计算列和度量值场景:

一、计算列(Calculated Column)

如果需要在表中新增一列,固定显示每行日期对应的Value平均值,推荐用以下两种写法:

写法1:用FILTER+EARLIER(新手友好,逻辑直观)

AvgValueForThisDate = 
CALCULATE(
    AVERAGE('YourTable'[Value]),
    FILTER(
        'YourTable',
        'YourTable'[Date] = EARLIER('YourTable'[Date])
    )
)
  • 逻辑说明:FILTER遍历整个表,只保留与当前行日期相同的记录;EARLIER用来获取当前行的日期值,避免筛选上下文覆盖;最后AVERAGE计算这些记录的Value平均值。

写法2:用ALLEXCEPT(性能更优,适合大数据量)

AvgValueForThisDate = 
CALCULATE(
    AVERAGE('YourTable'[Value]),
    ALLEXCEPT('YourTable', 'YourTable'[Date])
)
  • 逻辑说明:ALLEXCEPT会移除除了Date列之外的所有筛选条件,让CALCULATE直接计算当前日期对应的所有Value的平均值,比FILTER的逐行扫描效率更高。

以你的示例数据为例,2000/02/05对应的Value为0.1和0.2,以上两种写法都会返回(0.1+0.2)/2=0.15,符合需求。

二、度量值(Measure)

如果是在Power BI报表中需要动态计算(比如通过切片器选择日期后显示对应平均值),直接写简单的度量值即可:

AvgValueForSelectedDate = AVERAGE('YourTable'[Value])
  • 逻辑说明:度量值会自动响应报表的筛选上下文,当你选中某个日期时,它会自动计算该日期下所有Value的平均值,无需额外筛选逻辑。

注意事项

  1. 替换代码中的'YourTable'为你实际使用的表名;
  2. 确保Date列是日期/时间类型,Value列是数值类型,否则函数会报错。

内容的提问来源于stack exchange,提问作者Stephen Nguyen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 19:38:21