以文本方式查看主题 - 易表在线答疑 (http://egrid2000.com/dvbbs/index.asp) -- 用户社区 (http://egrid2000.com/dvbbs/list.asp?boardid=2) ---- [求助]公式 (http://egrid2000.com/dvbbs/dispbbs.asp?boardid=2&id=26827) |
||||
-- 作者:iyplx2425 -- 发布时间:2013/12/26 11:46:00 -- [求助]公式
文件中,在“01月份”表的[产品编号_1]至[产品编号_80]写入刷新公式。由于列太多,想用一个统一的公式一次性写入,但执行起来不对,请老师看看问题出在哪里。 谢谢。 |
||||
-- 作者:iyplx2425 -- 发布时间:2013/12/26 11:49:00 -- 另外,转换函数中被转换的字符还有没有其他办法精简? |
||||
-- 作者:dancedy -- 发布时间:2013/12/26 12:27:00 --
|
||||
-- 作者:iyplx2425 -- 发布时间:2013/12/27 8:45:00 -- 谢谢3楼老师,但如果在“上年结转”表中[批次号]、[工序名称]相同的行不止一行时,这个公式还是有问题的,FindText()函数只能返回“上年结转”表中第一次出现的行中的数据。好像用CountFor()函数能解决这个问题: IF(CountFor(GridName,"批次号", "=" ,[批次号],"工序名称", "=" ,[工序名称],"产品编号_4", "=" ,[产品编号_4]) > 0,0,[产品编号_4])。因为对colname()函数用法不熟悉,比如colname(2)括号中的2表示什么意思。请老师按这个公式帮我写下各列通用的公式。谢谢。
|
||||
-- 作者:wjq1072 -- 发布时间:2013/12/27 9:32:00 -- 产品编号_列通用公式: Eval("If(FindText(""上年结转"",ColName,""批次号"", ""="" ,[批次号],""工序名称"", ""="" ,[工序名称])=-1,0,["+ColName+"])") |
||||
-- 作者:iyplx2425 -- 发布时间:2013/12/27 9:49:00 -- Eval("IF(CountFor(""上年结转"",""批次号"", ""="" ,[批次号],""工序名称"", ""="" ,[工序名称] ,""产品编号_" + colname(2) + """, ""="",[产品编号_" + colname(2) + "]) = - 1,0,[产品编号_" + colname(2) + "])") 依样画瓢,不知对不对。 |
||||
-- 作者:wjq1072 -- 发布时间:2013/12/27 10:08:00 --
两表的产品编号_1-----完全相同(用ColName就可以),为什么要使用产品编号_" + colname(2) ?不是“画蛇添足”吗? |
||||
-- 作者:iyplx2425 -- 发布时间:2013/12/27 10:42:00 -- 哦。
|
||||
-- 作者:iyplx2425 -- 发布时间:2013/12/27 10:49:00 -- 请问老师,条件“上年结转”中的编号=本表中的编号,通用公式怎么表述? |
||||
-- 作者:iyplx2425 -- 发布时间:2013/12/27 10:54:00 -- IF(CountFor(GridName,"批次号", "=" ,[批次号],"工序名称", "=" ,[工序名称], ColName, "=" , ColName) > 0,0, ColName) 能这样表达吗?用到Eval()中又该怎样用? 谢谢 |