Google Sheets中基于数值区间匹配对应值的查找公式实现
Google Sheets 区间匹配查找实现方法
参考数据表格
| ColA | ColB | Adjusted value | |
|---|---|---|---|
| Row1 | Low | High | Adjusted value |
| Row2 | 0.5 | 1.4 | 1 |
| Row3 | 1.5 | 2.3 | 2 |
| Row4 | 2.4 | 3.2 | 3 |
| Row5 | 3.3 | 4.2 | 4 |
| Row6 | 4.3 | 5.1 | 5 |
| Row7 | 5.2 | 6.1 | 6 |
| Row8 | 6.2 | 7.0 | 7 |
| Row9 | 7.1 | 8.0 | 8 |
根据需求,要实现「输入值落在ColA与ColB的区间内时,返回对应ColC的调整值」,可以用以下两种常用公式:
方法1:VLOOKUP 近似匹配
假设待查找的值放在单元格X1,参考数据范围是A2:C9(跳过表头行),公式如下:
=VLOOKUP(X1, A2:C9, 3, TRUE)
- 参数说明:
X1:待查找的目标值A2:C9:包含区间和调整值的数据范围3:要返回的列(ColC是数据范围的第3列)TRUE:启用近似匹配模式,会自动找到小于等于目标值的最大ColA值,刚好对应目标值所在的区间(因为ColA是升序排列的)
方法2:INDEX + MATCH 组合
同样假设待查找值在X1,公式如下:
=INDEX(C2:C9, MATCH(X1, A2:A9, 1))
- 参数说明:
MATCH(X1, A2:A9, 1):在ColA列中找到小于等于目标值的最大数值的位置INDEX(C2:C9, ...):根据MATCH返回的位置,提取ColC列对应的调整值
注意事项
- 确保ColA列的数值是升序排列,这两个公式才能正常工作
- 如果目标值小于0.5或大于8.0,公式会返回
#N/A,可以用IFERROR处理异常:=IFERROR(VLOOKUP(X1, A2:C9, 3, TRUE), "无匹配区间")
内容的提问来源于stack exchange,提问作者turbonerd
相关产品推荐
相关产品推荐

