从Excel中大小不同的两列中减去值

从Excel中大小不同的两列中减去值,excel,excel-formula,Excel,Excel Formula,下表有四列: > x1 y1 x2 y2 > 1.2 800.5 1.4 200 > 2.6 850.3 7.6 300 > 3.1 900.1 9.2 400 > 4.6 949.9 5.5 500 > 5.2 999.7 10.2 600 > 6.7 1049.5 8.4 700 > 7.8 1099.3 > 8.3 1149.1 &

下表有四列:

> x1    y1      x2  y2
> 1.2   800.5   1.4  200
> 2.6   850.3   7.6  300
> 3.1   900.1   9.2  400
> 4.6   949.9   5.5  500
> 5.2   999.7   10.2 600
> 6.7   1049.5  8.4  700
> 7.8   1099.3      
> 8.3   1149.1      
> 9.1   1198.9      
> 10.1  1248.7
我想再有两个专栏。一个包含与列x1和x2匹配的数字,另一个包含与行匹配对应的值之间存在差异的数字,如下表所示:

x1   y1       x2     y2   x3      y3 = y2-y1
1.2  800.5    1.4   200   1.2    (800.5-200)
2.6  850.3    7.6   300   5.2    (999.7-500)
3.1  900.1    9.2   400   7.8    (1099.3-300)
4.6  949.9    5.5   500   8.3    (1149.1-700)
5.2  999.7    10.2  600   9.1    (1198.9-400)
6.7  1049.5   8.4   700   10.1   (1248.7-600)
7.8  1099.3             
8.3  1149.1             
9.1  1198.9             
10.1 1248.7
换句话说,列x3应包含与x1和x2匹配的值(条件是数字应更接近,例如1.2和1.4),而y3应包含减去y1和y2得到的值,对应于匹配行。必须使用x1、x2、y2和y3对x3和y3进行评估

到目前为止,我一直在手工操作,但这是一个很长的表格让人筋疲力尽,我想excel中应该有一个方法,我无法理解我们的方法。我试过了

=INDEX(x1_array,MATCH(x2_array,y1_array,-1))
但它看起来像一个不完整的公式,我甚至不确定我是否做对了,因为列大小不同。有人能帮我想一个办法吗

如果我不清楚,我已经画了一个例子供参考:

这里有一种解决方法:查看下图,并在A-D列显示您的数据

首先,您需要一个列E来查找最接近的x1以匹配每个x2。这里有一个资源:

然后,您需要匹配F列中的Y1。例如,F2是
=MATCH(E2,$A$2:$A$11,0)


最后,从包含y2s的列中偏移匹配,就完成了。在我的例子中,G2是
=OFFSET($A$1,F2,1)
,H2只是
=G2-D2

你能保证x1列从上到下的顺序吗?是的。x1和x2都已排序。您需要2个
索引/匹配
,一个返回y1,一个返回y2。当
x3
5.2
时,我们为什么要减去
600
?与
x2
5.5
相对应的
500
不是更有意义吗?@jnevil它一定是一个输入错误,因为500是唯一一个未计算的数字,有2600个。。。不过他需要澄清一下。谢谢@wkzhu。这并不是我想象的那样,但使用你的解决方案,它工作得非常完美!