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

Power BI中计算多分组多数值间平均间隔的方法求助

在Power Query中计算同地点读数的平均间隔

分步操作方案

  • 第一步:按地点分组,保留每组的所有读数
    进入Query Editor,选中数据表后点击「主页 > 分组依据」:

    • 分组列选择你的地点列(比如Location)
    • 新列名设为MileList,操作选择「所有行」,点击确定。这一步会把每个地点对应的所有读数打包成一组。
  • 第二步:添加自定义列计算组内平均间隔
    点击「添加列 > 自定义列」,输入以下公式(注意替换Mile为你的读数列名,Location为地点列名):

    let
        排序读数 = List.Sort([MileList][Mile]),
        计算间隔 = List.Difference(排序读数, {0}),
        平均间隔 = if List.Count(排序读数) > 1 then List.Average(计算间隔) else null
    in
        平均间隔
    

    公式逻辑:先把当前地点的所有读数排序,再计算相邻读数的差值,最后求这些差值的平均值(如果该地点只有1个读数,返回null)。

  • 第三步:整理结果
    删除不需要的MileList列,就能得到每个地点对应的平均间隔数据。

简化高效版(直接在分组时完成计算)

如果不想保留中间的MileList列,可以在分组时直接添加自定义计算:

  1. 打开「分组依据」对话框,设置分组列为Location
  2. 添加两个分组操作:
    • 第一个:操作选「所有行」,列名MileList
    • 第二个:操作选「自定义」,列名AvgInterval,输入简化公式:
      let sorted = List.Sort([MileList][Mile]), diffs = List.Difference(sorted, {0}) in if List.Count(sorted)>1 then List.Average(diffs) else null
      
  3. 确定后直接得到带平均间隔的分组结果,删除MileList即可。

错误原因说明

你之前用双索引+自合并的方法出错,是因为没有先按地点分组过滤,导致跨地点计算了读数差值。上面的方法都是先把数据按地点拆分到独立组内,再在组内处理,从根源避免了跨组错误。

内容的提问来源于stack exchange,提问作者Gil Wadsworth

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 07:36:22