Foxtable(狐表)用户栏目专家坐堂 → 如何设计“单项平均”公式?


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

主题:如何设计“单项平均”公式?

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


加好友 发短信
等级:二尾狐 帖子:559 积分:6288 威望:0 精华:0 注册:2008/9/7 20:15:00
如何设计“单项平均”公式?  发帖心情 Post By:2008/11/7 14:43:00 [只看该作者]

这个表是用易表做的模,现在想全部采用狐表,以提高计算速度,第一个“你认为教师的工作态度”一列中的合计,我计算出来了,公式也会,“单项平均”我公式就不会了,大人们看看。“单项平均”公式的要求是这样的:相同教师的合计分是不同的,这里要求有多少个相同教师,它们的合计要相加,所得之和要除相同教师的个数,所得结果添在“单项平均”中。看看这个公式怎么写。谢谢。

第一个是易表文件
第二个是我要做的狐表文件
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:易表学生评教分析系统2008.11.rar

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:学生评教表.rar


提示:题目要简明扼要!
[此贴子已经被smileboy于2008-11-7 15:56:16编辑过]

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2008/11/7 15:18:00 [只看该作者]

虽然可以实现,但是表结构有问题,这是一个原始评分数据表,通常不应该在这里头进行统计,而是有一个单独的统计表,同级每一个教师的平均得分和排名。


另外,请不要用这么复杂的列名,表头应该考虑用列标题来实现。

 


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2008/11/7 15:26:00 [只看该作者]

我利用命令窗口设置了两项的计算,大概3秒左右可以出结果,其余的可以自己加进去。

 

Dim Names As List(Of String)

Names = DataTables("学生评分表").GetUniqueValues("","教师姓名")

For Each Name As String In Names

   Dim Sum As Double = DataTables("学生评分表").Compute("Sum(你认为老师的教学态度_合计)","[教师姓名] = '" & Name & "'")

   Dim Count As Integer = DataTables("学生评分表").Compute("Count(教师姓名)","[教师姓名] = '" & Name & "'")

   Dim Drs As List(Of DataRow) = DataTables("学生评分表").Select("[教师姓名] = '" & Name & "'")

   Dim Avg As Double = Math.Round(Sum / Count,3)

   For Each dr As DataRow In Drs

       dr("你认为老师的教学态度_单项平均") = avg

   Next

 

  Sum = DataTables("学生评分表").Compute("Sum(你认为老师创设的课堂情景_合计)","[教师姓名] = '" & Name & "'")

  Count = DataTables("学生评分表").Compute("Count(教师姓名)","[教师姓名] = '" & Name & "'")

  Drs = DataTables("学生评分表").Select("[教师姓名] = '" & Name & "'")

  Avg = Math.Round(Sum / Count,3)

  For Each dr As DataRow In Drs

      dr("你认为老师创设的课堂情景_单项平均") = avg

  Next

Next

不过这样的设计始终是有问题的,应该有单独的统计表,否则计算的耗时可以忍受,但是存盘就慢多了,可能要几分钟,因为foxtable只保存修改过的行,所以日常的应用存盘效率高过易表,但是你这样设计的话,等于每次计算后,11万行全部被修改过,存盘的速度可想而知。


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


加好友 发短信
等级:二尾狐 帖子:559 积分:6288 威望:0 精华:0 注册:2008/9/7 20:15:00
  发帖心情 Post By:2008/11/7 15:28:00 [只看该作者]

不太明白,因为对狐表还不是太懂,总认为是易表的升级,但做起来,却不如易表易。那么应该怎么设计。讲得再具体些。谢谢。


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2008/11/7 15:30:00 [只看该作者]

看3楼啊,我给了代码,直接在命令窗口执行即可算出其中两个单项平均。
[此贴子已经被作者于2008-11-7 15:33:14编辑过]

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2008/11/7 15:34:00 [只看该作者]

最好改变结构,如果不想改,将三楼的代码设计成一个按钮,以后但及这个按钮计算单项平均。

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


加好友 发短信
等级:二尾狐 帖子:559 积分:6288 威望:0 精华:0 注册:2008/9/7 20:15:00
  发帖心情 Post By:2008/11/7 15:36:00 [只看该作者]

在“教师得分表”中“教学态度_得分”这一列怎样把“学生评分表”中“你认为老师的教学态度_单项平均”这一列的数据引用过来??谢谢!!!

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2008/11/7 15:43:00 [只看该作者]

你应该删除学生评分中的所有单项平均列,直接在教师得分表中加上单项平均栏目,在这里进行统计。

好的表结构是一个好系统的基础,就像房子的地基。


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


加好友 发短信
等级:二尾狐 帖子:559 积分:6288 威望:0 精华:0 注册:2008/9/7 20:15:00
  发帖心情 Post By:2008/11/7 15:53:00 [只看该作者]

提醒的对,那么用三楼的代码,需要改些什么??


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


加好友 发短信 好心情 一级勋章
等级:超级版主 帖子:715 积分:5564 威望:0 精华:1 注册:2008/8/31 20:45:00
  发帖心情 Post By:2008/11/7 15:55:00 [只看该作者]

还是好好看帮助吧,打好基础才是主要的。

 回到顶部
总数 19 1 2 下一页