根据2个input查找大表中的值

我知道使用索引和匹配函数,以及vllookup函数来查找表中的值。 我的问题涉及如何在没有大量if语句的情况下最好地写出公式。 在一张纸上,我有桌子,在另一张桌子上,用户inputbuild筑types和面积。 如果小于或等于表中的值,则select该值,否则select下一个值。 例如,6500 SF Type IV将查找单元格E3,并返回1500的火线。

ABCDEFGHIJK 2 TYPE 1A TYPE IB TYPE IIA TYPE IIIA TYPE IV TYPE VA TYPE IIB TYPE IIB TYPE VB FIRE FLOW (gpm) Flow duration (hrs) 3 22700 22700 12700 12700 8200 8200 5900 5900 3600 1500 2 4 30200 30200 17000 17000 10900 10900 7900 7900 4800 1750 2 

这将做到这一点,只有一个警告。 如果值大于该列中的最大值,它将返回0

 =INDEX(J:J,IFERROR(MATCH(O3,INDEX(A:I,0,MATCH(O2,$A$2:$I$2,0))),2)+1) 

在这里输入图像说明


如果值大于所需列中的最后一个平方英尺,则此公式将返回J列中的最后一个值。

 =IF(O3>INDEX(A:I,MATCH(1E+99,A:A),MATCH(O2,$A$2:$I$2,0)),INDEX(J:J,MATCH(1E+99,A:A)),INDEX(J:J,IFERROR(MATCH(O3,INDEX(A:I,0,MATCH(O2,$A$2:$I$2,0))),2)+1)) 

在这里输入图像说明

我想我有一些工作:

 =INDEX(J3:J99,MATCH(TRUE,M3<OFFSET(A3,0,MATCH(N3,A2:K2,0)-1,99),0)) 

其中N3有你的“TYPE IV”,M3有你的6500.注意,这是一个数组公式,所以必须使用Ctrl + Shift + Enterinput。

如果您需要更多列,请更改99。

如果没有值,这将返回#N / A。