在范围之间的 table 上搜索值
Search a value on a table between ranges
我的目标是编写一个公式,该公式将 return 来自 table 的值,如果它落在 2 个特定范围内。
根据B列(X值)和C列(Y值)的数据,如果X和Y在table从H6到M8的范围内,则填充D列(Z值)。
将查找范围更改为仅发件人号码:
然后使用这个公式:
=INDEX($G:$I,MATCH(B4,$F:$F),MATCH(C4,$G:$I))
如果您可以重新排列数据,Scott 上面的回答是更好的解决方案。但是,如果您不能,并且为了演示其他一些公式,您可以在单元格 D4 中使用以下内容并向下复制:
=VLOOKUP(B4,$F:$M,IF(AND(C4>=$H,C4<$I),3,IF(AND(C4>=$J,C4<$K),5,IF(AND(C4>=$L,C4<$M),7,"ERROR out of table"))),1)
使用的公式:
- VLOOKUP
- 如果
- 和
此方法的缺点:您需要为 IF 语句中的 Y 值添加每个列范围检查。它们会变得很长,而且 IF 语句的嵌套深度也有限制。如果您需要添加列,这将使调试和编辑变得困难。 VLOOKUP 要求查找中的搜索列 table 位于左侧。
我的目标是编写一个公式,该公式将 return 来自 table 的值,如果它落在 2 个特定范围内。
将查找范围更改为仅发件人号码:
然后使用这个公式:
=INDEX($G:$I,MATCH(B4,$F:$F),MATCH(C4,$G:$I))
如果您可以重新排列数据,Scott 上面的回答是更好的解决方案。但是,如果您不能,并且为了演示其他一些公式,您可以在单元格 D4 中使用以下内容并向下复制:
=VLOOKUP(B4,$F:$M,IF(AND(C4>=$H,C4<$I),3,IF(AND(C4>=$J,C4<$K),5,IF(AND(C4>=$L,C4<$M),7,"ERROR out of table"))),1)
使用的公式:
- VLOOKUP
- 如果
- 和
此方法的缺点:您需要为 IF 语句中的 Y 值添加每个列范围检查。它们会变得很长,而且 IF 语句的嵌套深度也有限制。如果您需要添加列,这将使调试和编辑变得困难。 VLOOKUP 要求查找中的搜索列 table 位于左侧。