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

Excel按Distance列大于10的条件分组返回Measure范围及Value最值

方案解答

实现方式判断

Excel 365、2021及以上版本无需使用VBA,直接用原生公式即可满足需求;2019及更早版本因不支持动态数组、LET/XLOOKUP等函数,需要使用VBA实现。

注意:公式无需读取单元格填充色,直接复用你设置条件格式的判断逻辑(Distance列值>10)即可识别目标行。

公式实现(适用365/2021+版本)

先统一假设数据结构:表头在第1行,数据从第2行开始,A列为Measure列、B列为Value列、C列为Distance列,E/F/G列为目标计算列。

E列(范围文本展示)公式

在E2单元格输入以下公式,下拉填充即可:

=IF(C2<=10,"",
 LET(
  pre_green_row,IFERROR(XLOOKUP(1,(C$1:C1>10)*1,ROW(C$1:C1),0),1),
  start_row,pre_green_row+1,
  end_row,ROW()-1,
  start_val,INDEX(A:A,start_row),
  end_val,INDEX(A:A,end_row),
  IF(start_row=end_row,start_val,start_val&"-"&end_val)
 )
)

F列(分组最小值)公式

在F2单元格输入以下公式,下拉填充即可:

=IF(C2<=10,"",
 LET(
  pre_green_row,IFERROR(XLOOKUP(1,(C$1:C1>10)*1,ROW(C$1:C1),0),1),
  start_row,pre_green_row+1,
  end_row,ROW()-1,
  MIN(INDEX(B:B,start_row):INDEX(B:B,end_row))
 )
)

G列(分组最大值)公式

在G2单元格输入以下公式,下拉填充即可:

=IF(C2<=10,"",
 LET(
  pre_green_row,IFERROR(XLOOKUP(1,(C$1:C1>10)*1,ROW(C$1:C1),0),1),
  start_row,pre_green_row+1,
  end_row,ROW()-1,
  MAX(INDEX(B:B,start_row):INDEX(B:B,end_row))
 )
)

旧版Excel VBA实现说明

如果使用无LET/XLOOKUP函数的旧版Excel,可通过自定义VBA函数或者遍历行数据的方式实现,逻辑和上述公式一致:逐行遍历识别Distance>10的行,记录上一个标记行的位置,计算对应区间的范围、最值即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 11:24:01