Foxtable(狐表)用户栏目专家坐堂 → [求助]求变动成本和固定成本


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

主题:[求助]求变动成本和固定成本

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


加好友 发短信
等级:六尾狐 帖子:1303 积分:10071 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2017/7/24 15:38:00 [只看该作者]

嗯,好了。不过用数据测了下,发现跟用excel算出来的有差异,一下不知问题在哪

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20170724135428.png
图片点击可在新窗口打开查看

Dim b As Double = sum1 / sum2
Dim a As Double = avg2 - b*avg1
如上图,用EXCEL算,a=80791,b=0.4029
而用上面的代码计算结果是a=72850,b=1.2752


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


加好友 发短信
等级:六尾狐 帖子:1303 积分:10071 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2017/7/24 16:09:00 [只看该作者]

sum1的计算结果是不对的,实际应该是11629431,代码结果是36805359,但公式好象没问题,不知为什么
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1002.foxdb


[此贴子已经被作者于2017/7/24 16:15:31编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/7/24 16:15:00 [只看该作者]

Dim t As Table = Tables("表A")
Dim avg1 As Double
Dim avg2 As Double
Dim sum1 As Double =0
Dim sum2 As Double =0
For Each r As Row In t.rows
    sum1 += val(r("销量"))
    sum2 += val(r("费用"))
Next

avg1 = sum1 / t.rows.count
avg2= sum2 / t.rows.count

sum1=0
sum2=0
For Each r As Row In t.rows
    sum1 += (val(r("销量"))-avg1)*(val(r("费用"))-avg2)
    sum2 += (val(r("销量"))-avg1)*(val(r("销量"))-avg1)
Next
msgbox(sum1 / sum2)

[此贴子已经被作者于2017/7/24 16:15:09编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1303 积分:10071 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2017/7/24 16:19:00 [只看该作者]

嗯,现在对了,谢谢

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


加好友 发短信
等级:六尾狐 帖子:1303 积分:10071 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2017/7/28 16:13:00 [只看该作者]

Dim t As DataTable = DataTables("表A")
Dim avg1 As Double
Dim avg2 As Double
Dim sum1 As Double =0
Dim sum2 As Double =0
Dim bjs As List(Of String) = t.GetValues("部门")
For Each bj As String In bjs
For Each r As DataRow In t.datarows.Select("部门 = '" & bj & "'")
    sum1 += val(r("销量"))
    sum2 += val(r("费用"))
Next
Next
avg1 = sum1 / t.datarows.count
avg2= sum2 / t.datarows.count
sum1=0
sum2=0
For Each bj As String In bjs
For Each r As DataRow In t.datarows.Select("部门 = '" & bj & "'")
    sum1 += (val(r("销量"))-avg1)*(val(r("费用"))-avg2)
    sum2 += (val(r("销量"))-avg1)*(val(r("销量"))-avg1)
Next
Next
Dim b As Double = sum1 / sum2
Dim a As Double = avg2 - b*avg1
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1002.foxdb

我想区分不同的部门分别计算,上面的代码错误提示

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20170728161147.png
图片点击可在新窗口打开查看


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


加好友 发短信
等级:九尾狐 帖子:2927 积分:20161 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2017/7/28 16:21:00 [只看该作者]


For Each r As DataRow In t.datarows.Select("部门 = '" & bj & "'")
    sum1 += val(r("销量"))
    sum2 += val(r("费用"))
Next

替换下:

dim rs as list (of
DataRow)=dt.datarows.Select("部门 = '" & bj & "'")'集合
if rs IsNot Nothing then  ‘判断空
For Each r As DataRow In rs
  sum1 += val(r("销量"))
    sum2 += val(r("费用"))
Next
end if
[此贴子已经被作者于2017/7/28 16:58:19编辑过]

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


加好友 发短信
等级:六尾狐 帖子:1303 积分:10071 威望:0 精华:0 注册:2013/11/8 15:27:00
  发帖心情 Post By:2017/7/28 16:59:00 [只看该作者]

还是有同样的错误提示

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


加好友 发短信
等级:九尾狐 帖子:2927 积分:20161 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2017/7/28 17:01:00 [只看该作者]

 底下 还有一部分
For Each bj As String In bjs
For Each r As DataRow In t.datarows.Select("部门 = '" & bj & "'")
    sum1 += (val(r("销量"))-avg1)*(val(r("费用"))-avg2)
    sum2 += (val(r("销量"))-avg1)*(val(r("销量"))-avg1)
Next
Next

改下

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


加好友 发短信
等级:九尾狐 帖子:2927 积分:20161 威望:0 精华:0 注册:2012/2/3 17:45:00
  发帖心情 Post By:2017/7/28 17:03:00 [只看该作者]

dim rs2 as list (of DataRow)=dt.datarows.Select("部门 = '" & bj & "'")'集合
if rs2 IsNot Nothing then  ‘判断空
For Each r2 As DataRow In rs2
  sum1 += val(r2("销量"))
    sum2 += val(r2("费用"))
Next
end if

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/7/28 17:15:00 [只看该作者]

Dim t As DataTable = DataTables("表A")
Dim bjs As List(Of String) = t.GetValues("部门")
For Each bj As String In bjs
    Dim drs = t.Select("部门 = '" & bj & "'")
    Dim avg1 As Double = 0
    Dim avg2 As Double = 0
    Dim sum1 As Double = 0
    Dim sum2 As Double = 0
    For Each r As DataRow In drs
        sum1 += val(r("销量"))
        sum2 += val(r("费用"))
    Next
   
    avg1 = sum1 / drs.count
    avg2= sum2 / drs.count
    sum1=0
    sum2=0
    For Each r As DataRow In drs
        sum1 += (val(r("销量"))-avg1)*(val(r("费用"))-avg2)
        sum2 += (val(r("销量"))-avg1)*(val(r("销量"))-avg1)
    Next
   
    Dim b As Double = sum1 / sum2
    Dim a As Double = avg2 - b*avg1
    msgbox(bj & " " & a)
Next

 回到顶部
总数 23 上一页 1 2 3 下一页