易表在线答疑技术与交流用户社区 → [求助]怎样将科目设置表中损益类中期间费用科目的编码相同部分提取。


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

主题:[求助]怎样将科目设置表中损益类中期间费用科目的编码相同部分提取。

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


加好友 发短信
等级:火箭侠 帖子:1937 积分:283 威望:0 精华:0 注册:2006/8/12 9:40:00
[求助]怎样将科目设置表中损益类中期间费用科目的编码相同部分提取。  发帖心情 Post By:2010/3/31 14:59:00 [显示全部帖子]

这是原公式:LocateFor("科目类别","=","损益","科目名称","Instr","费用") And SetCellText("系统说明",[系统说明!row],"期间费用",mid([科目编码],0,3))。这样的公式有一个缺点,即当科目编码发生变化时,不能得到正确的结果。请高手帮忙!egd文件下载

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


加好友 发短信
等级:火箭侠 帖子:1937 积分:283 威望:0 精华:0 注册:2006/8/12 9:40:00
  发帖心情 Post By:2010/3/31 17:34:00 [显示全部帖子]

上传的文件我将“系统说明”改成“系统设置”了。

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


加好友 发短信
等级:火箭侠 帖子:1937 积分:283 威望:0 精华:0 注册:2006/8/12 9:40:00
  发帖心情 Post By:2010/3/31 17:36:00 [显示全部帖子]

举例:科目编码 6602   管理费用   6603 销售费用  6601 销售费用
期间费用科目编码前缀=“660”,因为前三位编码相同,而第四位不同。

-=-=-=- 以下内容由 还不错2010年03月31日 05:37pm 时添加 -=-=-=-
如果科目编码改成:602、601、603
前面的公式就得不到正确的结果了。

-=-=-=- 以下内容由 还不错2010年03月31日 05:50pm 时添加 -=-=-=-
上面就应该提取成:60

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


加好友 发短信
等级:火箭侠 帖子:1937 积分:283 威望:0 精华:0 注册:2006/8/12 9:40:00
  发帖心情 Post By:2010/4/1 8:21:00 [显示全部帖子]


当然有问题。

-=-=-=- 以下内容由 还不错2010年04月01日 08:23am 时添加 -=-=-=-
如按上图科目编码,期间费用前缀应为60,是前两位,而不前三位。因为第三科目编码不同。

-=-=-=- 以下内容由 还不错2010年04月01日 08:25am 时添加 -=-=-=-
我想法是:怎么自动判断前位相同,应取前几位。而不是固定取前3位或前2位。

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


加好友 发短信
等级:火箭侠 帖子:1937 积分:283 威望:0 精华:0 注册:2006/8/12 9:40:00
  发帖心情 Post By:2010/4/1 9:11:00 [显示全部帖子]

首先谢谢总版主,虽然能够达到目前的要求,但没有考虑到:如果科目编码长度变为5、6位怎么办?是不是还要修改公式?

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


加好友 发短信
等级:火箭侠 帖子:1937 积分:283 威望:0 精华:0 注册:2006/8/12 9:40:00
  发帖心情 Post By:2010/4/1 9:24:00 [显示全部帖子]

这是我的公式:
LocateFor("科目类别","=","损益","科目名称","Instr","费用") And SetCellText("系统设置",[系统设置!row],"期间费用",mid([科目编码],0,len([科目编码])-1)) And OpenWindow(1)
现在存在一个问题:len([科目编码])-1公式中怎样用公式求出这个1
即:符合"科目类别","=","损益","科目名称","Instr","费用"的记录数。再用Len()函数计算记录数的长度。用CountFor()公式系统出现错误。

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


加好友 发短信
等级:火箭侠 帖子:1937 积分:283 威望:0 精华:0 注册:2006/8/12 9:40:00
  发帖心情 Post By:2010/4/1 9:38:00 [显示全部帖子]

原来公式只针对当前科目编码设置的,我考虑应增加适用范围。才给版主出了个难题。正常情况下,期间费用中各项“费用”是不会变的。
这是我做公式,还请版主看看有什么问题。再次,表示感谢!
LocateFor("科目类别","=","损益","科目名称","Instr","费用") And SetVariable("%期间费用数%",CountFor("科目设置","科目类别","=","损益","科目名称","Instr","费用")) And SetCellText("系统设置",[系统设置!row],"期间费用",mid([科目编码],0,len([科目编码])-len(text([%期间费用数%])))) And OpenWindow(1)

-=-=-=- 以下内容由 还不错2010年04月01日 11:25am 时添加 -=-=-=-
这个公式是在右键菜单里。

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


加好友 发短信
等级:火箭侠 帖子:1937 积分:283 威望:0 精华:0 注册:2006/8/12 9:40:00
  发帖心情 Post By:2010/4/1 11:36:00 [显示全部帖子]


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


加好友 发短信
等级:火箭侠 帖子:1937 积分:283 威望:0 精华:0 注册:2006/8/12 9:40:00
  发帖心情 Post By:2010/4/2 8:24:00 [显示全部帖子]

egd文件下载
结果正确呀。

 回到顶部