2022-09-22 05:04来源:m.sf1369.com作者:宇宇
你可能需要的是数据拟合.
有个笨办法(由于我用的是2007,只能以2007的操作作为基础)
1、插入一张含有趋势线的散点图(scatter with smooth lines)
2、将数据绘制入这个散点图
3、选中图中数据线,点鼠标右键,插入趋势线(Add trendline)
4、在弹出的对话框中选择多项式拟合,次数填3或以上
5、点选对话框底部的表格中显示公式,关闭对话框
你这个数据我得到的结果是
y = 0.7811x^3 + 4.7446x^2 - 24.2x + 36.705
可以尝试提高阶数来提高精度,但数据拟合的特点就是这样的,很难做到完全准确。 你也可以试试分段进行拟合,针对最需要准确的部分单独拟合。 还有就是,如果不是必须使用excel的话,像你推荐matlab的curve fitting工具箱,函数型更多、选项更灵活。
例如: A=50 B=30 则(A-B)/B在EXCEL里表示为: =(50-30)/30 再如: A在A1单元格内, B在B1单元格内, 则A-B)/B在EXCEL里表示为: =(A1-B1)/B1
点函数公式图标,里面是加法乘除。。。。。。选择自己需要的就可以啦
当算好一个结果时,用鼠标点住单元格,待出现+时,拖住往下拉,下面的结果就都出来啦~~~~~~~~~~~~~~~~~~~~~~~····
点击工作表(例如Sheet1工作表)标签,右键查看代码,将下列代码复制到光标定位处。
Private Sub Worksheet_Change(ByVal Target As Range)
'工作表Change时间,单元格数值发生变化则触发事件。
If Target.Address <> $B$1 Then Exit Sub
'如果变化的单元格不是B1则,本次退出事件
Range(A1) = Application.WorksheetFunction.Max(Target.Value, Range(A1))
'A1单元格选择A1和B1单元格的最大的一个。
'如果B1小于原来A1中储存的最大值,则A1取原来的A1,最大值没有变化。
'如果B1大于原来A1中储存的最大值,则A1取B1,最大值变化。
End Sub
B1数据变化A1才有可能变化,B1输入的数据大于A1,A1变为B1
*********************
基本操作的方法:
1.工具/选项/重新计算/迭代次数修改为1
2.在A1输入公式
=max(A1,B1)
3.在B1输入数据,如果B1输入的数据大于A1则A1变为B1的数值.如果小于则,A1没有变化。
效果同VBA效果差不多