易表在线答疑技术与交流用户社区 → 能否对出勤合计和缺勤的公式进行修改,运行的速度慢,公式又长,


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

主题:能否对出勤合计和缺勤的公式进行修改,运行的速度慢,公式又长,

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


加好友 发短信
等级:版主 帖子:4639 积分:133 威望:0 精华:0 注册:2006/9/23 19:23:00
  发帖心情 Post By:2007/10/19 20:40:00 [只看该作者]

班门弄斧,将6楼公式再缩短一下:

       Eval("eval(""if([日期_""+Substitute([%rq%],""|"",""号]=""""" + Substitute(Substitute("白@白|夜@夜|大@大|小@小|加@加","|",""""",1,0)"")+eval(""if([日期_""+Substitute([%rq%],""|"",""号]="""""),"@",""""",1,0)+if([日期_"")+""号]=""""") + """"",1,0)"")")

    [%rq%]  还是6楼那个!


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


加好友 发短信
等级:论坛游民 帖子:26 积分:0 威望:0 精华:0 注册:2007/6/16 21:19:00
  发帖心情 Post By:2007/10/19 20:56:00 [只看该作者]

谢谢各位版主,我水平太低,无法看懂公式的意思。以后多加学习,请多指教

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


加好友 发短信
等级:版主 帖子:4639 积分:133 威望:0 精华:0 注册:2006/9/23 19:23:00
  发帖心情 Post By:2007/10/19 20:58:00 [只看该作者]

下面引用由jsnjngst2007/10/19 08:56pm 发表的内容:
谢谢各位版主,我水平太低,无法看懂公式的意思。以后多加学习,请多指教


      到技巧区学习Eval函数的高级用法!


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


加好友 发短信
等级:超级版主 帖子:16190 积分:125850 威望:1 精华:0 注册:2006/8/12 12:29:00
  发帖心情 Post By:2007/10/19 21:09:00 [只看该作者]

慢慢来,我们都是这样过来的哦!
比如你的“病假”列刷新公式:
Eval("If([日期_"+Substitute("1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31","|","号]=""病"",1,0) + If([日期_")+"号]=""病"",1,0)")
你可以在公式编辑器里打开,把Eval删除成下面的形式:
("If([日期_"+Substitute("1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31","|","号]=""病"",1,0) + If([日期_")+"号]=""病"",1,0)")
再点击编辑器下面的执行按钮就可以看到实际要执行的公式是什么样的了。
If([日期_1号]="病",1,0) + If([日期_2号]="病",1,0) + If([日期_3号]="病",1,0) + If([日期_4号]="病",1,0) + If([日期_5号]="病",1,0) + If([日期_6号]="病",1,0) + If([日期_7号]="病",1,0) + If([日期_8号]="病",1,0) + If([日期_9号]="病",1,0) + If([日期_10号]="病",1,0) + If([日期_11号]="病",1,0) + If([日期_12号]="病",1,0) + If([日期_13号]="病",1,0) + If([日期_14号]="病",1,0) + If([日期_15号]="病",1,0) + If([日期_16号]="病",1,0) + If([日期_17号]="病",1,0) + If([日期_18号]="病",1,0) + If([日期_19号]="病",1,0) + If([日期_20号]="病",1,0) + If([日期_21号]="病",1,0) + If([日期_22号]="病",1,0) + If([日期_23号]="病",1,0) + If([日期_24号]="病",1,0) + If([日期_25号]="病",1,0) + If([日期_26号]="病",1,0) + If([日期_27号]="病",1,0) + If([日期_28号]="病",1,0) + If([日期_29号]="病",1,0) + If([日期_30号]="病",1,0) + If([日期_31号]="病",1,0)

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


加好友 发短信
等级:超级版主 帖子:16190 积分:125850 威望:1 精华:0 注册:2006/8/12 12:29:00
  发帖心情 Post By:2007/10/19 21:25:00 [只看该作者]

给你基本完成简化,其中合计公式参考两位斑竹的公式哦!
egd文件下载

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


加好友 发短信
等级:超级版主 帖子:13147 积分:-89 威望:0 精华:0 注册:2006/8/11 11:14:00
  发帖心情 Post By:2007/10/19 21:27:00 [只看该作者]

各位公式减下来了,但速度似乎也慢下来了。

用操作公式似乎还好点。

egd文件下载


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


加好友 发短信
等级:超级版主 帖子:16190 积分:125850 威望:1 精华:0 注册:2006/8/12 12:29:00
  发帖心情 Post By:2007/10/19 21:40:00 [只看该作者]

其实楼主的数据量很小,速度哪能这样慢哦?恐怕和表的结构有关。表中要有几百人不知是个什么样子哦。不乐观!

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


加好友 发短信
等级:论坛游民 帖子:26 积分:0 威望:0 精华:0 注册:2007/6/16 21:19:00
  发帖心情 Post By:2007/10/19 21:44:00 [只看该作者]

版主,婚丧假的计算是婚和丧的和,试用了版主的文件没有这个功能,谢谢版主,你们水平太高了

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


加好友 发短信
等级:超级版主 帖子:13147 积分:-89 威望:0 精华:0 注册:2006/8/11 11:14:00
  发帖心情 Post By:2007/10/19 21:51:00 [只看该作者]

下面引用由jsnjngst2007/10/19 09:44pm 发表的内容:
版主,婚丧假的计算是婚和丧的和,试用了版主的文件没有这个功能,谢谢版主,你们水平太高了

将婚丧列改成这样:

(Len([%AA%])-Len(Substitute([%AA%],"婚",""))+Len([%AA%])-Len(Substitute([%AA%],"丧","")))/2


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


加好友 发短信
等级:超级版主 帖子:13147 积分:-89 威望:0 精华:0 注册:2006/8/11 11:14:00
  发帖心情 Post By:2007/10/19 21:52:00 [只看该作者]

下面引用由wjq10722007/10/19 09:40pm 发表的内容:
其实楼主的数据量很小,速度哪能这样慢哦?恐怕和表的结构有关。表中要有几百人不知是个什么样子哦。不乐观!

好象正常,近500个if,加上eval生成字符,估计这个速度也差不离。


 回到顶部
总数 46 上一页 1 2 3 4 5 下一页