以文本方式查看主题 - 易表在线答疑 (http://egrid2000.com/dvbbs/index.asp) -- 用户社区 (http://egrid2000.com/dvbbs/list.asp?boardid=2) ---- [求助]Eval公式 (http://egrid2000.com/dvbbs/dispbbs.asp?boardid=2&id=26851) |
||||
-- 作者:iyplx2425 -- 发布时间:2014/1/8 19:33:00 -- [求助]Eval公式 有如下自动格式公式: IF([" +ColName+ "] = "" And ([" +ColName+ "] =[红 1] Or [" +ColName+ "] = [红 2] Or [" +ColName+ "] =[红 3] Or [" +ColName+ "] =[红 4] Or [" +ColName+ "] =[红 5] Or [" +ColName+ "] =[红 6]),1,IF([" +ColName+ "] <> "" And ([" +ColName+ "] <>[红 1] And [" +ColName+ "] <>[红 2] And [" +ColName+ "] <>[红 3] And [" +ColName+ "] <>[红 4] And [" +ColName+ "] <>[红 5] And [" +ColName+ "] <>[红 6]),2,IF([" +ColName+ "] <> "" And ([" +ColName+ "] = [红 1] Or [" +ColName+ "] = [红 2] Or [" +ColName+ "] = [红 3] Or [" +ColName+ "] = [红 4] Or [" +ColName+ "] = [红 5] Or [" +ColName+ "] = [红 6]),3,""))) 请教:在使用Eval()函数时,能不能将上述公式中的绿色部分先作为尾部植入公式,再在植入的尾部后继续按头、中、 尾三个部分植入……,直到三个转换函数完成? 按上述思路,得到以下公式: Eval("IF([" +ColName+ "] = """" And ([" +ColName+ "] = [红" +Substitute("1|2|3|4|5|6","|","Or [" +ColName+ "] = [红") + "]),1,IF([" +ColName+ "] <> """" And ([" +ColName+ "] <>[红" +Substitute("1|2|3|4|5|6","|","] And [" +ColName+ "] <> [红") + "]),2,IF([" +ColName+ "] <> """" And ([" +ColName+ "] = [红" +Substitute("1|2|3|4|5|6","|","] Or [" +ColName+ "] <> [红") + "]),3,"""")))") 但运行结果好像不对,请指教。 谢谢。 |
||||
-- 作者:wjq1072 -- 发布时间:2014/1/8 21:04:00 -- 发文件上来看看? 列名称可以用ColName写成通用公式;而3个判断其中的1、2、3、4、5、6就不能再使用Eval写了(3个判断条件不同!) [此贴子已经被作者于2014-1-8 21:35:48编辑过]
|
||||
-- 作者:iyplx2425 -- 发布时间:2014/1/9 8:11:00 -- [求助]公式
|
||||
-- 作者:iyplx2425 -- 发布时间:2014/1/9 8:29:00 -- [求助]公式 另外还有一个关于列名通用公式的问题。 在Eval()函数运用中,类似[" +ColName+ "] =[红1] 这种情形,我们是把[" +ColName+ "] 作为[围红_]各列的通用公式来使用的,但公式会不会同时把[" +ColName+ "]指认为[红1]呢?因为[" +ColName+ "] 并没有特指是哪些列。 |
||||
-- 作者:dancedy -- 发布时间:2014/1/9 9:14:00 -- 公式设置在哪一列,colname就代表当前列的列名 |
||||
-- 作者:wjq1072 -- 发布时间:2014/1/9 10:55:00 -- If([红1]="" And [红2]="" And [红3]="",5, Eval("If(["+ColName+"]="""" And [红1] <> ColName(2) And [红2] <> ColName(2) And [红3] <> ColName(2),1, If(["+ColName+"]="""" And ([红1]=ColName(2) Or [红2]=ColName(2) Or [红3]= ColName(2)),2, If(["+ColName+"] <> """" And [红1] <> ColName(2) And [红2] <> ColName(2) And [红3] <> ColName(2),3, If(["+ColName+"] <> """" And ([红1]=ColName(2) Or [红2]=ColName(2) Or [红3]= ColName(2)),4,""""))))"))
|
||||
-- 作者:iyplx2425 -- 发布时间:2014/1/9 12:01:00 -- [求助]公式 谢谢各位老师。 有两个问题请教: 1、["+ColName+"]与ColName(2)的使用区别在哪里? 2、式中[红1]、[红2]、[红3]不能用转换函数吗?如果[红]列很多的话,岂不公式会要写很长? 谢谢。 |
||||
-- 作者:wjq1072 -- 发布时间:2014/1/9 12:48:00 -- 1、ColName 为的前列的全名称(**_a)"**_a"; 2、ColName(2) 为的前列的第二层名称(**_a)"a"。 3、条件不同,不能使用Eval统一简化公式。 |
||||
-- 作者:iyplx2425 -- 发布时间:2014/1/9 13:21:00 -- [求助]公式 哦。谢谢老师了。
|
||||
-- 作者:iyplx2425 -- 发布时间:2014/1/9 13:24:00 -- [求助]公式 可以将ColName(1) 代表第一层吗?(**_a)"**_"或是"**"。 |