根据标准从范围中select单元格值

我试图找出一个更光滑的方法来确定基于给定范围内定义的标准单元格的值。 说穿了,我有一个标准粘度,标准温度和测量温度的列。 我需要创build第四列,根据测量的温度select标准粘度。 例如,如果测得的温度大于或等于0℃且小于1℃,则返回0℃的标准粘度。

我的问题是,我有一个很大的范围,并find它繁琐的创build每个范围的自定义expression式。 我创build了一个由IF(AND()()()()语句组成的噩梦般的函数,但是我发现这个函数太耗时了,特别是当我尝试以单位数增量创build一个0-200℃的expression式时。

下面是一个可用的代码示例,但是非常麻烦:

=IF(AND(G8>=$C$7,G8<$C$8),$D$7,0)+IF(AND(G8>=$C$8,G8<$C$9),$D$8,0)+.... 

要么

 =IF(AND(measured temp>=0,measured temp<1),$D$7,0)+IF(AND(measured temp>=1,measured temp<2),$D$8,0) 

我怎样才能以更时尚的方式来解决这个问题?

您可以通过VLOOKUPfunction来实现这一点。

 =VLOOKUP(G8;$C$7:$D$...;2;TRUE) 

将三个点replace为表格最后一行的索引。

VLOOKUP的第一个参数是要search的值; 第二个参数是第一列要被search的值的范围; 第三个参数是包含要返回的值的列的索引(在范围内,所以2表示范围内的第二列,在你的情况下是D)。 TRUE表示您不想search完全匹配,但要search的列是定义区间的有序值列表。

编辑:

使用MATCH和OFFSET(猜测,未尝试),如果结果值的列相对于标准值的列是相对的:

 =OFFSET($C$7;...;MATCH(G8;$C$7:$C$...;1) - 1) 

将前三个点replace为结果列相对于列C的位置(如果是列D,则为1,如果是列B,则为-1),将后三个点replace为范围的最后一行的索引,如上。

EDIT2:

INDEX而不是OFFSET更好,sepnuts的回答和下面的注释:

 =INDEX($D7:$D...;MATCH(G8;$C$7:$C$...;1)) 

如果您的测量温度是在F2中说的,而您的数据表是A:C,请尝试:

 =INDEX(A:A,MATCH(F2,C:C))