2016-07-27 73 views
0

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

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

因此,它往下看行,直到找到类型IV列中大于6500的第一个值? –

回答

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

+0

非常感谢你,完美的工作。当我试图用这个公式引用另一张表上的表格时,我遇到了一个问题。我的公式是= INDEX('2012 IFC Table'!J:J,IFERROR(MATCH(C9,INDEX('2012 IFC Table'!I:JA,0,MATCH(D9,'2012 IFC Table'!$ A $ 2: $ I $ 2,0))),2)-1) – broncos15

+0

@ broncos15看看这部分'2012 IFC Table'!I:JA'我认为它应该是'2012 IFC Table'!A:I'In是在第二个INDEX。 –

+0

@ broncos15记得标记为正确。 –

0

我觉得我有一些工作:

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

其中N3有你的 “IV型” 和M3有你的6500。请注意,这是一个数组公式,所以它必须使用Ctrl + Shift + Enter输入。

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

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

相关问题