以文本方式查看主题 - 易表在线答疑 (http://egrid2000.com/dvbbs/index.asp) -- 用户社区 (http://egrid2000.com/dvbbs/list.asp?boardid=2) ---- [求助]怎样将科目设置表中损益类中期间费用科目的编码相同部分提取。 (http://egrid2000.com/dvbbs/dispbbs.asp?boardid=2&id=19214) |
-- 作者:还不错 -- 发布时间:2010/3/31 14:59:00 -- [求助]怎样将科目设置表中损益类中期间费用科目的编码相同部分提取。 这是原公式:LocateFor("科目类别","=","损益","科目名称","Instr","费用") And SetCellText("系统说明",[系统说明!row],"期间费用",mid([科目编码],0,3))。这样的公式有一个缺点,即当科目编码发生变化时,不能得到正确的结果。请高手帮忙!egd文件下载 |
-- 作者:smileboy -- 发布时间:2010/3/31 16:36:00 -- 没看懂,详细说明一下 |
-- 作者:wjq1072 -- 发布时间:2010/3/31 16:48:00 -- SetCellText("系统说明",[系统说明!row],"期间费用",mid([科目编码],0,3)) 文件中没有“系统说明”表啊? |
-- 作者:还不错 -- 发布时间:2010/3/31 17:34:00 -- 上传的文件我将“系统说明”改成“系统设置”了。 |
-- 作者:还不错 -- 发布时间:2010/3/31 17:36:00 -- 举例:科目编码 6602 管理费用 6603 销售费用 6601 销售费用 期间费用科目编码前缀=“660”,因为前三位编码相同,而第四位不同。 -=-=-=- 以下内容由 还不错 在 2010年03月31日 05:37pm 时添加 -=-=-=- 如果科目编码改成:602、601、603 前面的公式就得不到正确的结果了。 -=-=-=- 以下内容由 还不错 在 2010年03月31日 05:50pm 时添加 -=-=-=- 上面就应该提取成:60 |
-- 作者:wjq1072 -- 发布时间:2010/3/31 18:40:00 -- egd文件下载 |
-- 作者:还不错 -- 发布时间:2010/4/1 8:21:00 -- 当然有问题。 -=-=-=- 以下内容由 还不错 在 2010年04月01日 08:23am 时添加 -=-=-=- 如按上图科目编码,期间费用前缀应为60,是前两位,而不前三位。因为第三科目编码不同。 -=-=-=- 以下内容由 还不错 在 2010年04月01日 08:25am 时添加 -=-=-=- 我想法是:怎么自动判断前位相同,应取前几位。而不是固定取前3位或前2位。 |
-- 作者:wjq1072 -- 发布时间:2010/4/1 8:58:00 -- egd文件下载 |
-- 作者:还不错 -- 发布时间:2010/4/1 9:11:00 -- 首先谢谢总版主,虽然能够达到目前的要求,但没有考虑到:如果科目编码长度变为5、6位怎么办?是不是还要修改公式? |
-- 作者:还不错 -- 发布时间:2010/4/1 9:24:00 -- 这是我的公式: LocateFor("科目类别","=","损益","科目名称","Instr","费用") And SetCellText("系统设置",[系统设置!row],"期间费用",mid([科目编码],0,len([科目编码])-1)) And OpenWindow(1) 现在存在一个问题:len([科目编码])-1公式中怎样用公式求出这个1 即:符合"科目类别","=","损益","科目名称","Instr","费用"的记录数。再用Len()函数计算记录数的长度。用CountFor()公式系统出现错误。 |