Google Sheets如何匹配介于最大最小值间的数值实现VLOOKUP查询


Google Sheets区间匹配ID实现方案
先做通用参数约定,你可以根据自己的实际表结构替换对应内容:
- 存储区间对应ID的工作表名称为
区间配置表,其中A列存区间最小值Min、B列存区间最大值Max、C列存对应ID,有效数据范围为A2:C5 - 待匹配数值所在工作表的待匹配数值位于B列,首个待匹配数值在B2单元格,需要回填结果的level列为C列
方法1:单单元格下拉填充
在C2单元格输入以下公式,下拉到所有需要匹配的行即可生效:
=LOOKUP(2,1/((区间配置表!$A$2:$A$5<=B2)*(区间配置表!$B$2:$B$5>B2)),区间配置表!$C$2:$C$5)
逻辑说明:
- 先逐行校验区间配置表的区间是否满足「待匹配数值≥最小值且<最大值」,符合条件返回1,不符合返回0
- 用1除以校验结果,符合条件的行返回1,不符合的返回#DIV/0!错误
- LOOKUP函数查找大于所有数组元素的2,会自动定位到唯一符合条件的非错误值,返回对应的ID
方法2:自动溢出数组公式
只需输入一次即可自动匹配整列数据,无需手动下拉,在C2单元格输入以下公式:
=BYROW(B2:B,LAMBDA(x,IF(x="","",LOOKUP(2,1/((区间配置表!$A$2:$A$5<=x)*(区间配置表!$B$2:$B$5>x)),区间配置表!$C$2:$C$5))))
逻辑说明:公式会自动遍历B列从B2开始的所有单元格,遇到空单元格返回空值,有数值的单元格自动执行匹配逻辑返回对应ID。
注意事项
- 如果你的区间配置表数据行数更多,替换公式中
$A$2:$A$5、$B$2:$B$5、$C$2:$C$5为你的实际数据范围即可 - 请确保区间配置表中的区间没有重叠,否则公式会返回最后一个匹配到的区间ID
内容的提问来源于stack exchange,提问作者andio
相关产品推荐
相关产品推荐

