【办公软件】案例:电路中计算出的电阻值为5欧,怎么通过Excel匹配到仓库里最接近的电阻值?

在实际工作中,比如我们计算出一个电阻值为46欧,那么我们的库里到底是有哪个电阻值最接近呢?可能有一些有经验的工程师会说当然是47欧呀。

但是如果我们计算出来的是80.2欧呢?是不是得去查一下表格看看到底哪个最接近,或是说至少也需要先用肉眼把两个比较接近的值拉出来,然后再减一减进行对比?如果这个值还会多次变更呢?那么工作量也就增加了起来。

我们是否有更快更好的方法去做这件事呢?其实可以通过Excel表格来自动的取得最接近的值。要完成这一步,需要知道5个函数。

1. ABS
2. MIN
3. MATCH
4. INDEX
5. ARRAY公式,必须用 "Control + Shift + Enter"键来确定。

如下所示为ABS函数  {ABS($C$2-A:A) } 计算结果。使用数组公式会在内存中创建一个数组,他的值可以使用普通计算公式往下拉可以看得到。

这里我们使用了数组函数,所以需要用Control + Shift + Enter来确定。函数会增加一个{}表示为数组函数。可以看到ABS计算结果为5,其实是用5-0的结果,因为A的第一行没有数据,默认为0。

【办公软件】案例:电路中计算出的电阻值为5欧,怎么通过Excel匹配到仓库里最接近的电阻值?_第1张图片

我们通过MIN函数可以找到 {ABS($C$2-A:A)} 数组中差异最小的值。因为为库中有5欧的电阻,刚好与匹配电阻5欧相等,所以说{MIN(ABS(C2-A:A))}的计算结果为0。

【办公软件】案例:电路中计算出的电阻值为5欧,怎么通过Excel匹配到仓库里最接近的电阻值?_第2张图片

使用MATCH去匹配数组的位置,因为MATCH去查找了MIN算出来的结果对应ABS算出来结果第几行。

如果需要匹配的值为5,那么使用公式{MATCH(MIN(ABS($C$2-A:A)),ABS($C$2-A:A),0)}匹配中对应的位置是第6行。

【办公软件】案例:电路中计算出的电阻值为5欧,怎么通过Excel匹配到仓库里最接近的电阻值?_第3张图片

如果是要匹配20欧,那么最近的应该是22,是在第5行。

【办公软件】案例:电路中计算出的电阻值为5欧,怎么通过Excel匹配到仓库里最接近的电阻值?_第4张图片

通过以上的函数我们知道需要匹配电阻值是在第几行了,所以接下来可以通过INDEX函数来查找到相关值。 

因为index可以直接或间接的取得到对应单元格值。我们使用参考行和刚才算出来的行数,可以得到与需要匹配电阻值最接近的值。

使用公式{=INDEX(A:A,MATCH(MIN(ABS($C$2-A:A)),ABS($C$2-A:A),0))}就得得到计算出需要匹配的电阻,库里最接近的值。如需要匹配电阻值为5,那么库里刚好有,就显示5。

【办公软件】案例:电路中计算出的电阻值为5欧,怎么通过Excel匹配到仓库里最接近的电阻值?_第5张图片

如果是20欧的话,那么最接近的应该是22欧。所以就计算出22。

【办公软件】案例:电路中计算出的电阻值为5欧,怎么通过Excel匹配到仓库里最接近的电阻值?_第6张图片

当然如果有18欧的电阻,那和22欧电阻都跟20欧差2欧,到底会选哪个呢?那就是哪个先就是哪个,原因是我们去查找最小值的时候是从上到下的顺序做的,然后MATCH是找到MIN的位置去找行数。所以谁在前面就会被选入。如下动图所示演示了整个文章中写到的公式变化:

【办公软件】案例:电路中计算出的电阻值为5欧,怎么通过Excel匹配到仓库里最接近的电阻值?_第7张图片

最后我们可以得到一个公式:

 {=INDEX(A:A,MATCH(MIN(ABS($C$2-A:A)),ABS($C$2-A:A),0))}

对他的解析是:ABS得到了与C2之间的差值的数组,MIN函数得到了数组中的最小值。MATCH匹配到了最小值在数组内是第几行。INDEX从A:A列中找到对应的行数。所以最终得到的结果就是在A:A中找到了与C2之间差值最小的数字。

你可能感兴趣的:(办公软件专题,excel,经验分享)