易表在线答疑技术与交流用户社区 → 成绩统计求助(上次用得好好的,今天平均分统计全部出错了,文件在最后)


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

主题:成绩统计求助(上次用得好好的,今天平均分统计全部出错了,文件在最后)

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


加好友 发短信
等级:超级版主 帖子:13147 积分:-89 威望:0 精华:0 注册:2006/8/11 11:14:00
  发帖心情 Post By:2007/4/29 23:41:00 [显示全部帖子]

想问一下楼主,平均分报表中平均分列刷新公式中的变量,你设计的原意是想怎么样,比如当变量为0时,变量为-1时想分别得到什么结果?(不好意思,我没找到你对此变量的相关赋值)

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


加好友 发短信
等级:超级版主 帖子:13147 积分:-89 威望:0 精华:0 注册:2006/8/11 11:14:00
  发帖心情 Post By:2007/4/29 23:53:00 [显示全部帖子]

还有个问题,例如统计语文平均分的抽评人数为40人,请问,这40个人是如你现在公式这样以某班级为条件从某行到到某行抽取来统计平均分?还是以这个班级语文分数为前40名的平均分?

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


加好友 发短信
等级:超级版主 帖子:13147 积分:-89 威望:0 精华:0 注册:2006/8/11 11:14:00
  发帖心情 Post By:2007/4/30 1:03:00 [显示全部帖子]

刚看到一楼更新后的文件,此文件没发现任何错误。

一楼文件平均分的计算是按成绩表中某班级某科目分数前[抽评人数]名来计算平均分的,如果你的要求也是这样就已经达到你的要求了。

如果和你的要求不符,你不妨详细说说。


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


加好友 发短信
等级:超级版主 帖子:13147 积分:-89 威望:0 精华:0 注册:2006/8/11 11:14:00
  发帖心情 Post By:2007/4/30 17:25:00 [显示全部帖子]

那好,按你的计算,以1班为例,抽评人数是25,其平均分是多少?并说明统计依据,我候只要你搞清楚这个问题,此问题也就解开了。

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


加好友 发短信
等级:超级版主 帖子:13147 积分:-89 威望:0 精华:0 注册:2006/8/11 11:14:00
  发帖心情 Post By:2007/5/1 12:52:00 [显示全部帖子]

用一楼更新后的文件做测试吧,21楼的文件的设置是错误的。

我简单说一下21楼文件错在那里,你的按钮公式是填充校代码和班代码后,直接用刷新公式进行计算,这时计算出的结果只能是按原来的排序进行计算某班级N名成绩的平均值(不是按前N名来计算平均值),所以这样的计算方式显然达不到你的要求。

再来看看一楼更新后的文件按钮公式:(为便于你理解,我把变量公式加在按钮公式中,这样可能你看起来更简单一些)

SetVariable("%课程%","语文") And SortCol("成绩表",[%课程%],2) And SortCol("成绩表","班级",1) And RecalcCol(Grid,[%课程%]+"抽评") And SetVariable("%课程%","历史") And SortCol("成绩表",[%课程%],2) And SortCol("成绩表","班级",1) And RecalcCol(Grid,[%课程%]+"抽评") And SetVariable("%课程%","数学") And SortCol("成绩表",[%课程%],2) And SortCol("成绩表","班级",1) And RecalcCol(Grid,[%课程%]+"抽评") And SetVariable("%课程%","自然") And SortCol("成绩表",[%课程%],2) And SortCol("成绩表","班级",1) And RecalcCol(Grid,[%课程%]+"抽评")

公式执行过程:

SetVariable("%课程%","语文");对字符变量赋值为语文。
SortCol("成绩表",[%课程%],2);可以理解为对成绩表语文列以降序排序。
SortCol("成绩表","班级",1);对成绩表班级列以升序排序。
经过上述操作后成绩表中的数据现在以你30楼的要求方式排列了。
RecalcCol(Grid,[%课程%]+"抽评");重算本表[课程_抽评]列的刷新公式,此时得到的结果和你要求的应该完全是符合的。



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


加好友 发短信
等级:超级版主 帖子:13147 积分:-89 威望:0 精华:0 注册:2006/8/11 11:14:00
  发帖心情 Post By:2007/5/1 12:58:00 [显示全部帖子]

呵呵,我这人不太会表达,也不知你能否看得懂我的解释。

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


加好友 发短信
等级:超级版主 帖子:13147 积分:-89 威望:0 精华:0 注册:2006/8/11 11:14:00
  发帖心情 Post By:2007/5/1 16:41:00 [显示全部帖子]

变量%抽评%公式:
SortCol("成绩库",[%课程%],2) And SortCol("成绩库","班代码",1) And RecalcCol(Grid,[%课程%]+"_平均分")

自定义按钮公式:

SelectFill("成绩库","校代码","校代码","班代码","班代码") And RecalcCol(Grid,"人数","抽评人数") And SetVariable("%L%",-1) And SetVariable("%课程%","语文") And [%抽评%] And SetVariable("%课程%","数学") And [%抽评%] And SetVariable("%课程%","外语") And [%抽评%] And SetVariable("%课程%","政治") And [%抽评%] And SetVariable("%课程%","历史") And [%抽评%] And SetVariable("%课程%","物理") And [%抽评%] And SetVariable("%课程%","化学") And [%抽评%] And SortCol("成绩表","考号",1) And SetVariable("%L%",0)


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


加好友 发短信
等级:超级版主 帖子:13147 积分:-89 威望:0 精华:0 注册:2006/8/11 11:14:00
  发帖心情 Post By:2007/5/1 17:46:00 [显示全部帖子]

其实在我的台式电脑中此类公式同样不能运行。
教你个方法,先将下面的公式放到刷新公式中,然后执行一下公式生成器窗口上的“执行/计算”按钮。

("AvgFor(""成绩库"",""语文"","+Text(FindRow("成绩库","班代码","=",[班代码]))+","+Text(FindRow("成绩库","班代码","=",[班代码])+[抽评人数]-1)+")")

执行一次后再将全部公式就不会有问题了。


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


加好友 发短信
等级:超级版主 帖子:13147 积分:-89 威望:0 精华:0 注册:2006/8/11 11:14:00
  发帖心情 Post By:2007/5/1 18:00:00 [显示全部帖子]

有些机子对Eval过敏,比如你我都属此列。
究其原因以前听老六说过是开发工具所致。

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


加好友 发短信
等级:超级版主 帖子:13147 积分:-89 威望:0 精华:0 注册:2006/8/11 11:14:00
  发帖心情 Post By:2007/7/11 21:55:00 [显示全部帖子]

抱歉,没发现错误。

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