以文本方式查看主题 - 易表在线答疑 (http://egrid2000.com/dvbbs/index.asp) -- 用户社区 (http://egrid2000.com/dvbbs/list.asp?boardid=2) ---- [灌水] Eval()中变量的确定 (http://egrid2000.com/dvbbs/dispbbs.asp?boardid=2&id=26789) |
-- 作者:iyplx2425 -- 发布时间:2013/12/17 21:31:00 -- [灌水] Eval()中变量的确定 怎样写Eval()公式,其中有两点最为关键,一是确定变量,二是找准中部。笨人的笨办法,我采用倒推法,极易成功。下面举例说明,与初学者分享。 有如下刷新公式: Max(Abs([A] - [B]),Abs([B] - [C]),......,Abs([I] - [J]),Abs([J] - [K])) 公式的含义是,在该列返回[A]、[B]......[J]、[K]诸列两两相邻数值最大差数(以绝对值表示),即[A]-[B]、[B]-[C]、直至[J]-[K]中绝对值最大的。 我们把这个公式变形为 Max(Abs([ A] - [ B]),Abs([ B] - [ C]),... ...,Abs([ I] - [ J]),Abs([ J] - [ K])) 请注意变形后的公式中,所有的变量A、B、C......I、J、K都被排到了每行的最前面。第一行(紫色)与最后一行(红色)都不包含变量,分别为公式的“头”与“尾”。从第二行到倒数第二行,按绿色与蓝色区分,交替出现,所有绿色与绿色,蓝色与蓝色标注的字符串都完全相同,分别为公式的“中1”和“中2”。 下面请注意,我们把变形了的公式再变一下,将所有绿色标注和蓝色标注的字符串分别用“|”和“@”来替代 Max(Abs([A|B@B|C@,......,@I|J@J|K])) 上述公式中红色部分中的“|”和“@”分别代表原公式中的 ] - [ 和 ]),Abs([ 。f替换后完整的表达式是 A|B@B|C@C|D@D|E@E|F@F|G@G|H@H|I@I|J@J|K 做好了这一步,我们的Eval()函数就可以很容易写出来了。 第一步, Eval("") 第二步,写入头部 Eval("Max(Abs([") 第三步,在头部后面置入"++" Eval("Max(Abs(["++"") 第四步,因为要分别对|和@进行置换,所以在"++"中间添加两个替换函数Substitute(),并把语法符号标注好 Eval("Max(Abs(["+Substitute(Substitute("","",""),"","")+"") 第五步,在"++"后面写入尾部 Eval("Max(Abs(["+Substitute(Substitute("","",""),"","")+"]))") 第六步,写入变量和被替换的字符|和@ Eval("Max(Abs(["+Substitute(Substitute("A|B@B|C@C|D@D|E@E|F@F|G@G|H@H|I@I|J@J|K","|",""),"@","")+"]))") 第七步,分别写入“中1”和“中2” Eval("Max(Abs(["+Substitute(Substitute("A|B@B|C@C|D@D|E@E|F@F|G@G|H@H|I@I|J@J|K","|","] - ["),"@","]),Abs([")+"]))") 第八步,操作结束。
|
-- 作者:lyang70 -- 发布时间:2013/12/18 8:48:00 -- |
-- 作者:客人 -- 发布时间:2013/12/18 15:38:00 -- 谢谢鼓励。 |
-- 作者:iyplx2425 -- 发布时间:2013/12/20 16:52:00 -- Eval()公式的写法可按下面公式的颜色标注作为步骤来进行。 第一步:黑色; 第二步:紫色; 第三步:红色; 第四步:绿色; 第五步:蓝色。 Eval("头部"+Substitute(Substitute("带有将要被替换字符(即例中的"|"和"@")的变量","|","中1"),"@","中2")+"尾部") |