Foxtable(狐表)用户栏目专家坐堂 → [求助]能不能直接调用EXCEL函数?


  共有2601人关注过本帖树形打印复制链接

主题:[求助]能不能直接调用EXCEL函数?

帅哥哟,离线,有人找我吗?
shilhoue
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:204 积分:1802 威望:0 精华:0 注册:2015/3/28 7:24:00
[求助]能不能直接调用EXCEL函数?  发帖心情 Post By:2015/6/24 7:49:00 [只看该作者]

我在项目中要用到标准曲线,狐表能不能直接调用EXCEL中的函数,如SLOPE()、INTERCEPT()、CORREL()函数?不能的话怎么自定义这三个函数呢?

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/24 9:29:00 [只看该作者]

不能用。

 

你必须去了解各个函数的计算方法,比如SLOPE

 

slope = Sum((X – X mean) * (Y – Y mean))  /  Sum((X – X mean) * (X – X mean))

 

比如有三组数 x=1,y=2; x=3,y=4; x=5,y=6

 

slope = ((1-3)*(2-4)+(3-3)*(4-4)+(5-3)*(6-4)) / ((1-3)*(1-3) + (3-3)*(3-3) + (5-3)*(5-3))

 

其余的函数,算法自己百度一下,然后转成对应的代码即可。


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/24 9:29:00 [只看该作者]

 如果代码不会写,就上传具体例子,说明要计算什么

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/24 9:40:00 [只看该作者]

 比如,根据2楼的逻辑,计算如下,其余什么函数,都可以根据逻辑编写代码。

 

Dim x() As Integer = {1,3,5}
Dim y() As Integer = {2,4,6}

Dim avg1 As Double
Dim avg2 As Double
For i As Integer = 0 To x.length - 1
    avg1 += x(i) / x.length
    avg2 += y(i) / y.length
Next
Dim sum1 As Double
Dim sum2 As Double
For i As Integer = 0 To x.length - 1
    sum1 += (x(i)-avg1)*(y(i)-avg2)
    sum2 += (x(i)-avg1)*(x(i)-avg1)
Next
msgbox(sum1 / sum2)


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/24 9:50:00 [只看该作者]

 进一步的,INTERCEPT 函数

 

https://support.office.com/zh-cn/article/INTERCEPT-%E5%87%BD%E6%95%B0-2a9b74e2-9d47-4772-b663-3bca70bf63ef?CorrelationId=3e76d59e-83f9-4c81-af22-89bf97f5df1d&ui=zh-CN&rs=zh-CN&ad=CN

 

 

Dim x() As Integer = {6,5,11,7,5}
Dim y() As Integer = {2,3,9,1,8}

Dim avg1 As Double
Dim avg2 As Double
For i As Integer = 0 To x.length - 1
    avg1 += x(i) / x.length
    avg2 += y(i) / y.length
Next
Dim sum1 As Double
Dim sum2 As Double
For i As Integer = 0 To x.length - 1
    sum1 += (x(i)-avg1)*(y(i)-avg2)
    sum2 += (x(i)-avg1)*(x(i)-avg1)
Next
Dim b As Double = sum1 / sum2
Dim a As Double = avg2 - b*avg1
msgbox(a)


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/6/24 9:57:00 [只看该作者]

CORREL根据公式计算

 

https://support.office.com/zh-cn/article/CORREL-%E5%87%BD%E6%95%B0-995DCEF7-0C0A-4BED-A3FB-239D7B68CA92?ui=zh-CN&rs=zh-CN&ad=CN

 

Dim x() As Integer = {3,2,4,5,6}
Dim y() As Integer = {9,7,12,15,17}

Dim avg1 As Double
Dim avg2 As Double
For i As Integer = 0 To x.length - 1
    avg1 += x(i) / x.length
    avg2 += y(i) / y.length
Next
Dim sum1 As Double
Dim sum2 As Double
Dim sum3 As Double
For i As Integer = 0 To x.length - 1
    sum1 += (x(i)-avg1)*(y(i)-avg2)
    sum2 += (x(i)-avg1)^2
    sum3 += (y(i)-avg2)^2
Next
msgbox(sum1 / math.Sqrt(sum2*sum3))

 


 回到顶部
帅哥哟,离线,有人找我吗?
yinyb36
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:953 积分:7252 威望:0 精华:0 注册:2011/9/6 13:36:00
  发帖心情 Post By:2015/6/24 11:58:00 [只看该作者]

收藏

 回到顶部
帅哥哟,离线,有人找我吗?
shilhoue
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:204 积分:1802 威望:0 精华:0 注册:2015/3/28 7:24:00
  发帖心情 Post By:2015/7/7 13:20:00 [只看该作者]

谢谢袍哥

 回到顶部