2016-07-27 49 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。