易表在线答疑技术与交流用户社区 → [灌水] Eval()中变量的确定


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

主题:[灌水] Eval()中变量的确定

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


加好友 发短信
等级:蒙面侠 帖子:2494 积分:6748 威望:0 精华:0 注册:2011/3/30 12:48:00
[灌水] Eval()中变量的确定  发帖心情 Post By:2013/12/17 21:31:00 [显示全部帖子]

怎样写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([")+"]))")

第八步,操作结束。

 


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


加好友 发短信
等级:蒙面侠 帖子:2494 积分:6748 威望:0 精华:0 注册:2011/3/30 12:48:00
  发帖心情 Post By:2013/12/20 16:52:00 [显示全部帖子]

Eval()公式的写法可按下面公式的颜色标注作为步骤来进行。

第一步:黑色;

第二步:紫色;

第三步:红色;

第四步:绿色;

第五步:蓝色。

Eval("头部"+Substitute(Substitute("带有将要被替换字符(即例中的"|"和"@")的变量","|","中1"),"@","中2")+"尾部")


 回到顶部