用一楼更新后的文件做测试吧,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,[%课程%]+"抽评");重算本表[课程_抽评]列的刷新公式,此时得到的结果和你要求的应该完全是符合的。