找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 840|回复: 2

[推荐]:直线插值函数

[复制链接]
发表于 2003-8-17 03:26:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
很早以前编制了一个直线(线性)插值和全区间插值VBA函数
现将直线插值函数用法说明如下:
1、打开EXCEL 的VBA编辑器,新建一个模块
2、粘贴下列代码并保存为加载宏

'直线查值函数
'finded 为被查的变量
'xrange 为包含自变量的单元格,输入时必须按列选取,数值
'       必须单调递增
'yrange 为包含函数值的单元格
'
'y=(x-x1)/(x2-x1)*(y2-y1)+y1
'x=finded
'x1=xup x2=xdown
'y1=yup y2=ydown
'y=findvalue
'
Function findvalue(finded As Single, xrange As Object, yrange As Object) As Single
    Dim xrow As Integer
    Dim xup, xdown, yup, ydown As Single
    For xrow = 1 To xrange.Rows.Count
        If finded < xrange.Cells(xrow, 1).Value Then Exit For
    Next xrow
    xup = xrange.Cells(xrow - 1, 1).Value
    xdown = xrange.Cells(xrow, 1).Value
    yup = yrange.Cells(xrow - 1, 1).Value
    ydown = yrange.Cells(xrow, 1).Value
    findvalue = (finded - xup) / (xdown - xup) * (ydown - yup) + yup
End Function


[/COLOR]
3、将上述文件加载于加载宏管理器中,这样每次就自动启动了。
4、将X、Y值按列排列,且X值必须为递增,最好将X和Y列分别定义为名称,如X_rang,Y_range。
5、求X1相对应的Y1值,键入=findvalue(X1,X_rang,Y_range)

下述为一个已做好的Excel文件,大家可以试一试。
使用时,请将宏安全级别设为“中”。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-8-23 13:31:58 | 显示全部楼层
不错,可以用,很实用的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-8-28 22:27:17 | 显示全部楼层

请教查二维表格的VBA程序

在设计中经常查询二维表格
您提供了一维表格查询方法,象遇到X方向和Y方向同时需插值的时候如何处理?
如表格如下:
  Y    1        2        3        4
X
0.1     0.3     0.5     0.8     1.2
0.2     0.35   0.55    0.85   1.25

求X=0.13,Y=2.3时所需的值

谢谢你的帮助!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-24 12:50 , Processed in 0.386129 second(s), 37 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表