先说下啥是单变量求解,单变量求解是解决假定一个公式要取的某一结果值,其中变量的引用单元格应取值为多少的问题。简单来说,y = ax + b,我们知道了y的值,需要反算x的值,这个过程我们叫解方程。放在Excel中,知道目标值y,通过多次迭代计算来求x的值,就叫做单变量求解。
实际在用Excel进行计算时,会涉及到多个单元格取值,错综复杂,一般很难得到变量与结果值的方程关系,所以采用单变量求解,可以大大节省时间,提高效率。当然,也可以用最笨的方法,就是多次手动调整变量值,让结果值与我们预期的目标数据无限靠近,也能得到结果。
接下来,分别来介绍下三种单变量求解方法的详细使用过程,以及其优缺点。
1. Excel模拟分析单变量求解
在Excel的数据→模拟分析中,可以找到单变量求解选项,打开后,就可以开始进行单变量求解计算了。
Excel自带单变量求解
在下面展示的Excel中,单元格的C2~C5,都有相应计算关系,最终结果值在C6单元格,C8为本次计算的期望结果值,C9是用C6-C8的插值,当C9等于0时,说明计算完成,结果达到了预期。
在用单变量求解时,将目标单元格选取C9,目标值设定为0,可变单元格选择C2。点击确定,很快就将入口值算出来。
Excel单变量求解
可以看到,计算很快得到结果了,因为这个是线性计算,所以速度还行,若是比较复杂的计算,速度可能就会慢一些了。在应对一些临时计算需求时,用这个方法就比较方便,缺点就是每次都需要点开选项,选择数据,操作上会比较繁琐,不够智能。
2. vba实现单变量求解
vba实现单变量求解,是我比较喜欢的方法了,其计算速度快,结果精准,而且足够智能。在一些固定计算公式的表格上使用,简直是神器一般。如下图展示:
vba单变量求解
可以看到,当结果值变化时,变量也会马上自动计算出结果,无需其他操作,可以说是集便捷、效率于一身,非实用的方法了。在应对一些固定表格中进行计算时,强烈推荐该方法。当然,这个方法也有点小缺点,一方面是代码写好后,不能随意调整单元格,不然会失效;另一方面是,需要采用vba编写代码,这对一部分人来说,折也是一个不小的障碍。
直接上该方法的vba代码,一共两部分,一部分是在模块中的函数,一部分是放在该sheet中的函数。模块中的代码如下,在实际使用过程中,需要自行调整表名称和单元格位置。
自动计算的代码如下,需要将代码放在需要计算的sheet中,如本案例是在sheet1中实现的,直接在sheet1中,写入该代码即可。本次案例中,D3和D8数据变动,会触发自动计算。可以根据实际需要,自行调整。
3. 插件函数实现单变量求解
vba单变量求解计算已经足够好了,为什么还要专门做一个函数,来实现单变量求解。主要是在Excel使用中,需要验证一些计算,但又不想每次都得专门写个vba,而且嫌Excel自带的单变量求解操作繁琐,所以插件函数的单变量求解出现了。
在应对一些线性函数,或者单趋势函数时,可以使用插件的自定义函数来实现,先看下使用效果。在D11输入自定义函数线性求解公式,选定相应的单元格参数。需要注意的是,单元格不是直接选中,而是通过字符串的形式体现,比如D2为变量单元格,在函数公式中,需要以双引号的形式表示D2→"D2"。目标单元格需要同样操作。
自定义函数线性单变量求解
可以看到,计算速度还是很快的,但是该函数只能应用于线性方程,如果变量与结果值不是线性变化,但是有相对趋势变化,比如结果值随着变量变大而变大,那可以采用自定义函数的趋势求解来计算,该方法通过二分法实现,相对速度会慢一些,但是应用会更广。展示效果如下:
在用自定义函数的趋势求解时,可以明显看到速度会慢一些,而且计算结果会有很小一点的偏差,这是因为函数在设计取值时,设置了精度,会导致结果计算会有少了偏差,而且二分法计算速度确实会慢一些,但最终也能得到想要的结果。
以上两个自定义函数,可以设定变量的最小值或最大值,以满足不同的计算需求,活动区域,也可以根据计算需要进行相应设定。该函数想简单使用,设定好前3个参数即可,需要注意不要漏掉单元格的双引号。
4. 总结
总而言之,单变量求解,能在计算时起到很大的帮助。建议至少掌握一种方法,满足自己的计算需求。三种方法各有特点,在不同的场景下,都有其独特的使用优势,根据实际使用需求选择使用。
自定义函数需要通过安装插件才能使用,插件地址我会放在评论区。若发现函数有错误,或有什么好的建议或想法,欢迎留言讨论。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/138156.html