易表在线答疑技术与交流用户社区 → 请教:计算刷新公式的问题


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

主题:请教:计算刷新公式的问题

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


加好友 发短信
等级:论坛游侠 帖子:238 积分:-30 威望:0 精华:0 注册:2006/12/31 11:05:00
请教:计算刷新公式的问题  发帖心情 Post By:2007/9/28 17:44:00 [只看该作者]

在"本年累计销量"字段中加入如下刷新公式:
SUMFOR("源数据","本月销量","分公司","=",[分公司],"品牌","=",[品牌],"年份","=",[年份],"月份"," <= ",[月份],1,rows)
由于有"18个单位*12个品牌*4年*12个月份"行,运行这个刷新公式时,需要4分钟左右的时间,我的一个表有20多个类似字段需要计算,计算时间非常长,有没有更好的办法解决计算时间长的问题!

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


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

1、将月份列设置为数值型(根据公式看应该是数值型),公式改为:

        SUMFOR("源数据","本月销量","分公司","=",[分公司],"品牌","=",[品牌],"月份"," <",[月份]+1,1,rows)  

       因为计算机数值加减运算速度快,而判断速度慢," <= " 改成" < ",将减少一个判断条件,也会提高速度!

2、数据量过大,建立各年度数据表,将数据按年度分别保存,表名称为:  年度+"源数据"  格式,再将公式改为:
     SUMFOR(text([年度])+"源数据","本月销量","分公司","=",[分公司],"品牌","=",[品牌],"月份"," < ",[月份]+1,1,rows)

     这样,只判断一次表名称,不用逐行判断年份,省去一个逐行判断环节!


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


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

先按条件进行汇总,然后用evalfor对指定列进行重算。
公式可以:if(Row=FirstRow,[本月销量],Cell(Row-1,"本月销量")+[本月销量])
估计用这种方式速度能有所改观。

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


加好友 发短信
等级:论坛游侠 帖子:238 积分:-30 威望:0 精华:0 注册:2006/12/31 11:05:00
  发帖心情 Post By:2007/9/29 9:59:00 [只看该作者]

谢谢版主!
请教:有没有提取表名的函数,比如"2007源数据",我从此表中提取"2007"字符。

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


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

如果你所指的“2007源数据”表不是本表,估计不太容易实现。

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


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

不知道楼主提取后干什么用?
这样可以吗?

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


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

我的附件怎么传不上啊?

SetLabel("  ",Mid(ListGrids(),Search("2007",ListGrids()),4))

这是显示在窗口的标签。


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


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

今天论坛怎么啦?
1、附件不能上传;2、不能补充。

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


加好友 发短信
等级:论坛游侠 帖子:238 积分:-30 威望:0 精华:0 注册:2006/12/31 11:05:00
  发帖心情 Post By:2007/9/29 14:03:00 [只看该作者]

有没有提取表名的函数,比如"2007源数据",
从本表中提取"2007"字符可以吗?
用途是提取2007字符,与年份变量比较,作为公式条件用

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


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

Left(GridName,4)

 回到顶部
总数 30 1 2 3 下一页