根据2个输入在大表中查找值

时间:2016-07-27 19:35:15

标签: excel

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

    A   B   C   D   E   F   G   H   I   J   K
2   TYPE 1A TYPE IB TYPE IIA    TYPE IIIA   TYPE IV TYPE VA TYPE IIB    TYPE IIB    TYPE V-B    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

2 个答案:

答案 0 :(得分:1)

这样做会有一点需要注意。如果值为>它将返回0而不是该栏中的最大数字。

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

enter image description here

如果值为>,此公式将返回列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))

enter image description here

答案 1 :(得分:0)

我认为我有一些工作:

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

其中N3有你的&#34; TYPE IV&#34;并且M3有6500.请注意,这是一个数组公式,因此必须使用Ctrl + Shift + Enter输入。

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

如果没有值,则返回#N / A.