我知道使用索引和匹配函数,以及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
答案 0 :(得分:1)
这样做会有一点需要注意。如果值为>它将返回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))
答案 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.