在Excel中查找和替换范围内的值

时间:2018-07-19 21:42:14

标签: excel loops excel-formula

我在excel中有一个看起来像这样的数组,尽管更大:

A      B    C       D         E      F        G
0      0    0       0       2.78    2.48    2.11
0      0    0       3.11    2.94    2.78    2.15
0      0    0       2.72    2.7     2.2     2.15
0    1.68   2.44    2.29    2.13    0        0
1.89 1.97   2.43    2.07    0       0        0

我正在尝试查找一个时间间隔内的所有值,然后根据如下图所示的图表将它们替换为其他值。第一行中的值是一个间隔的限制,第二行代表我想插入到上面的数组中的值。例如,单元格A5中的值= 1.89。 1.89介于1.8和1.9之间,因此根据下面的图表,我希望输出为19.9192。

A       B         C        D         E         F          G  ........>

1.6    1.7       1.8      1.9        2        2.1        2.2         2.3       2.4       2.5      2.6       2.7      2.8        2.9       3      3.1             3.2
19.51  19.721   19.9192  20.1088    20.2903  20.4644    20.6318     20.7928  20.9484    21.0986  21.2441    21.3849  21.5214    21.654   21.7829     21.9083    22.0304

在寻找值方面,我尝试了以下方法:

 =AND(A1 > Lower limit ,A1< Upper limit)

并使用下限/上限作为图表中的相邻单元格。例如,

 =AND (A1> A10, A<A11) 

返回的值为FALSE或TRUE,具体取决于单元格A1是否在指定的间隔内。我意识到这不太正确,但是我不确定如何进行。如果其为TRUE,则我不确定如何根据第二张图表插入想要的值-例如,如果该值介于1.8和1.9之间,则插入19.9192;如果值为FALSE,则不确定如何移动继续检查下一个间隔,并保持检查间隔,直到找到正确的间隔,并正确更换了电池。我认为可能需要一个循环,但是我在excel方面工作不多,还无法获得正确的语法来进行尝试。

1 个答案:

答案 0 :(得分:1)

再次查看您的参考数据,格式的精度为0.1。而输入数据为0.01和0.1。另一个条件是您采用差异的下限。因此,我将舍入值1st,然后使用它查询引用表。例如。 1.89>转换为1.8>查找1.8对值>检索值。

在I2中输入:

=IFERROR(INDEX($11:$11,MATCH(INT(A1*10)/10,$10:$10,0)),"")并将其拖动到O6。

+ ---- [公式分解:] ---- +

将数字四舍五入为0.1精度> INT(A1 * 10)/ 10

在选择> match()中寻找1.8位置

从确定的位置> index()检索值

希望有帮助。 (: