• 【办公软件】案例:电路中计算出的电阻值为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。

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

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

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

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

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

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

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

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

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

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

     {=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之间差值最小的数字。

  • 相关阅读:
    二维数组的动态创建和释放
    docker镜像仓库迁移
    维格云门户入门教程
    Java开发篇——设计模式(4)先生需要代购吗?
    笔试强训48天——day23
    linux邮件发送
    java烧脑总结:技术的本质?到底什么是数组?数组为何查询快插入慢?
    【AIGC】提示词 Prompt 分享
    ip大小比较的方法
    嵌入式实时操作系统的设计与开发(内存资源池存储管理)
  • 原文地址:https://blog.csdn.net/weixin_51792779/article/details/133588157