以文本方式查看主题

-  易表在线答疑  (http://egrid2000.com/dvbbs/index.asp)
--  用户社区  (http://egrid2000.com/dvbbs/list.asp?boardid=2)
----  请教有关自动填充问题?  (http://egrid2000.com/dvbbs/dispbbs.asp?boardid=2&id=3005)

--  作者:sdqz6173
--  发布时间:2010/12/23 16:42:00
--  请教有关自动填充问题?
egd文件下载
在“下考序”中进行自动填充:
 1、对每班进行了排名(在“班名”中)
 2、在“下考序”中266班的前15名填充数字为1-15(以总分排名)
 3、在“下考序”中267班的前20名填充数字为16-35(同上)
 4、在“下考序”中268班的前25名填充数字为36-60(同上)

 在“下考序”中还要对其它班也要填充数字,就以上两班为何  对267班的填充数字实际就是这班的前20名加上上一班排名的人数

-=-=-=- 以下内容由 sdqz61732010年12月23日 04:43pm 时添加 -=-=-=-
嘿嘿,“为何”改为“为例”

-=-=-=- 以下内容由 sdqz61732010年12月23日 04:48pm 时添加 -=-=-=-
请大侠注意哟,填充的数字可要边续的,可不能是1、1、3、4、…哟

-=-=-=- 以下内容由 sdqz61732010年12月23日 04:49pm 时添加 -=-=-=-
晕,水平差,又打错了一个字“边”改连,嘿嘿


--  作者:wjq1072
--  发布时间:2010/12/23 21:32:00
--  
egd文件下载
--  作者:sdqz6173
--  发布时间:2010/12/23 21:51:00
--  
首先谢谢版主帮忙,但还是不行哟,第一班级可能是变化的,第二每班所要求的人数可能是变化的,这次可能是这一个班15人,那一个班是21,再下一次则可能是这一班是19,另一个又可能是16,
所以,班要用到变量,参加人员也必须变量,不然,班级和参加人数发生变化,那就要调整这公式里面的一些内容,那不就太麻烦了
--  作者:sdqz6173
--  发布时间:2010/12/23 21:55:00
--  
1、不知可以不以通过筛选,然后进行填充,但是隐藏的则不能参加计算
2、是不是可能通过辅助表,先把第一个班小于N名的其它数据复制到另一表,排好后,再复制过来,再进行第二个,第三个
--  作者:wjq1072
--  发布时间:2010/12/23 22:35:00
--  
[这个贴子最后由wjq1072在 2010/12/24 09:12am 第 2 次编辑]

呵呵!
egd文件下载
或者这样
egd文件下载
--  作者:sdqz6173
--  发布时间:2010/12/24 10:57:00
--  
首先谢谢大侠的帮助,这样完全达到了我的目的,但是我也想学学这个软件,使自己掌握更多一点知识,对里面公式很不了解,想了很久也没明白,像Eval("EvalFor(Grid,""下考序"",""If(Row=1,1,If([班名] <= "+Substitute(Substitute(ListFor("班统","p"),"/",",MaxFor(Grid,""""下考序"""",1,Row-1)+1,""""""""))"",""班级"",""="","""),"|",""") And EvalFor(Grid,""下考序"",""If(Row=1,1,If([班名] <= ")+""")")这个公式就根本不知么子一回事,能不能给我分析分析呢?
谢谢
--  作者:wjq1072
--  发布时间:2010/12/24 12:10:00
--  
[这个贴子最后由wjq1072在 2010/12/24 00:15pm 第 2 次编辑]

下面引用由sdqz61732010/12/24 10:57am 发表的内容:
首先谢谢大侠的帮助,这样完全达到了我的目的,但是我也想学学这个软件,使自己掌握更多一点知识,对里面公式很不了解,想了很久也没明白,像Eval("EvalFor(Grid,""下考序"","&qu ...

Eval("EvalFor(Grid,""下考序"",""If(Row=1,1,If([班名] <= "+Substitute(Substitute(ListFor("班统","p"),"/",",MaxFor(Grid,""""下考序"""",1,Row-1)+1,""""""""))"",""班级"",""="","""),"|",""") And EvalFor(Grid,""下考序"",""If(Row=1,1,If([班名] <= ")+""")")

以上公式实际上就是下面公式的一个简化的通用公式!(这样就解决了各班取名数和增减班级而不需要调整公式的问题)

EvalFor(Grid,"下考序","If(Row=1,1,If([班名] <= 15,MaxFor(Grid,""下考序"",1,Row-1)+1,""""))","班级","=","266") And
EvalFor(Grid,"下考序","If(Row=1,1,If([班名] <= 20,MaxFor(Grid,""下考序"",1,Row-1)+1,""""))","班级","=","267") And
EvalFor(Grid,"下考序","If(Row=1,1,If([班名] <= 25,MaxFor(Grid,""下考序"",1,Row-1)+1,""""))","班级","=","268") And
EvalFor(Grid,"下考序","If(Row=1,1,If([班名] <= 30,MaxFor(Grid,""下考序"",1,Row-1)+1,""""))","班级","=","269") And
EvalFor(Grid,"下考序","If(Row=1,1,If([班名] <= 35,MaxFor(Grid,""下考序"",1,Row-1)+1,""""))","班级","=","270") And
EvalFor(Grid,"下考序","If(Row=1,1,If([班名] <= 40,MaxFor(Grid,""下考序"",1,Row-1)+1,""""))","班级","=","271") And
EvalFor(Grid,"下考序","If(Row=1,1,If([班名] <= 45,MaxFor(Grid,""下考序"",1,Row-1)+1,""""))","班级","=","272")
----
----
这个需要能够灵活应用Evaj函数的技巧,你可以在论坛搜索有关Eval函数的贴子参考学习。


--  作者:lyang70
--  发布时间:2010/12/24 14:02:00
--  
[这个贴子最后由lyang70在 2010/12/24 02:03pm 第 1 次编辑]

下面引用由sdqz61732010/12/24 10:57am 发表的内容:
首先谢谢大侠的帮助,这样完全达到了我的目的,但是我也想学学这个软件,使自己掌握更多一点知识,对里面公式很不了解,想了很久也没明白,像Eval("EvalFor(Grid,""下考序"","&qu ...

呵呵,这个是需要一定功力才能达到的,只有总版、版主以及少数高手们才能运用自如!
我混迹坛子这么久,也才略知一二,汗颜呀!...楼主加油吧!!!


--  作者:wjq1072
--  发布时间:2010/12/24 20:01:00
--  
下面引用由lyang702010/12/24 02:02pm 发表的内容:
呵呵,这个是需要一定功力才能达到的,只有总版、版主以及少数高手们才能运用自如!
我混迹坛子这么久,也才略知一二,汗颜呀!...楼主加油吧!!!

Eval函数得自己“悟”,很难说清楚。提供下面一个图解不知能不能看明白?


--  作者:swg-1954
--  发布时间:2010/12/25 18:39:00
--  
什么情况下使用Eval?什么情况下使用EvalFor?很长时间“悟”不透。尽管总版主反复讲,论坛也有不少例子,除了你们版主外,恐怕很少有人理解。