根据条件从范围中选择单元格值

时间:2014-07-09 10:08:24

标签: excel excel-formula vlookup worksheet-function

我正在尝试找出一种更简洁的方法,用于根据给定范围内定义的标准确定单元格的值。说白了,我有一个标准粘度,标准温度和测量温度的色谱柱。我需要创建第四列,根据测量的温度选择标准粘度。例如,如果测得的温度大于或等于0 o C且小于1 o C:返回0 o C的标准粘度。

我的问题是我有一个很大的范围,发现为每个范围创建自定义表达式很乏味。我已经创建了一个由IF(AND())语句组成的噩梦函数,但发现这很费劲,特别是如果我尝试以单位数增量创建0-200 o C范围的表达式。

以下是一个有效的代码示例,但非常繁琐:

=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)

我怎么能以更时尚的方式处理这个问题?

2 个答案:

答案 0 :(得分:2)

您可以通过VLOOKUP功能实现此目的。

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

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

VLOOKUP的第一个参数是要搜索的值;第二个参数是要在其第一列中搜索值的范围;第三个参数是包含要返回的值的列的索引(在范围内,因此2表示范围内的第二列,在您的情况下为D); TRUE表示您不想搜索完全匹配,但要搜索的列是定义间隔的有序值列表。

编辑:

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

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

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

EDIT2:

INDEX而不是OFFSET更好,se pnuts的回答和下面的评论:

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

答案 1 :(得分:2)

如果你的测量温度用F2表示,你的数据表是A:C,请尝试:

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