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

如何在Excel Power Query中创建计算滑动窗口最大值的自定义列?

在Power Query中实现连续N行最大值计算

这里的N对应你提到的4(即Excel中G1的值),以下是两种实用的实现方法:

方法1:利用现有手动添加的idx列

假设你的数据源表名为Source,且idx是从1开始的连续整数索引,添加自定义列的公式如下:

Vmax = 
let
    currentIdx = [idx],
    // 筛选当前行到后续3行的范围
    targetRows = Table.SelectRows(Source, each [idx] >= currentIdx and [idx] <= currentIdx + 3),
    // 提取V列数据并计算最大值
    maxVal = List.Max(targetRows[V])
in
    maxVal

如果最后几行的idx+3超出表的最大索引,List.Max会自动仅计算现有行的最大值,和你Excel公式的行为一致。

方法2:基于Power Query内置索引(无需手动idx列)

如果不想依赖手动添加的idx列,可直接用内置索引实现:

  1. 先给表添加内置索引:添加列→索引列→从0开始
  2. 添加自定义列,公式如下:
Vmax = 
let
    currentIndex = [索引],
    // 从当前位置开始提取最多4个V列值
    valueRange = List.Range(Source[V], currentIndex, 4),
    maxVal = List.Max(valueRange)
in
    maxVal

List.Range会自动处理超出表长度的情况,比如最后一行仅能取到自身的V值,直接返回该值作为最大值。

动态调整行数的扩展

如果需要像Excel中G1那样动态修改连续行数,可先定义一个参数RowCount(设为4),然后将公式中的4替换为RowCount即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 20:05:00