易表在线答疑技术与交流用户社区 → 请教:为什么表1第五列的刷新公式执行不了?


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

主题:请教:为什么表1第五列的刷新公式执行不了?

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


加好友 发短信
等级:新手上路 帖子:3 积分:0 威望:0 精华:0 注册:2007/7/23 23:36:00
请教:为什么表1第五列的刷新公式执行不了?  发帖心情 Post By:2007/7/25 20:30:00 [只看该作者]

请教:为什么“Split(ListFor(GridName,"第一列"),MaxFor(GridName,"第一列"),1)”执行不了?
该公式为表1第五列的刷新公式。
egd文件下载

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


加好友 发短信
等级:超级版主 帖子:2320 积分:350 威望:0 精华:0 注册:2006/8/11 10:55:00
  发帖心情 Post By:2007/7/25 21:10:00 [只看该作者]

易表中很多函数是不能互相嵌套使用的,包括所有的表格函数、中文转换函数,个别字符函数和日期函数。
先看看这个例子:
CUnumber(Sumfor("订单明细","金额","订单号","= ",[订单]))
这个公式是不能得到任何结果的,因为CUnumber是不能和Sumfor嵌套的,那么怎样解决这个问题呢?有两个方法:

1、使用中转列
我们增加一个中转列,将其刷新公式设为:
Sumfor("订单明细","金额","订单号",= ,[订单]))
为了不影响使用,可以将这个中转列隐藏起来。
最后将原来的公式:
CUnumber(Sumfor("订单明细","金额","订单号","= ",[订单]))
改为:
CUnumber([中转列名称])

2、使用表达式变量
在“文件”菜单上,单击“变量设置”,增加一个变量,姑且命名为%金额%,将其类型设为表达式(切记),内容设为:
Sumfor("订单明细","金额","订单号",= ,[订单]))
最后将原来的公式:
CUnumber(Sumfor("订单明细","金额","订单号","=",[订单]))
改为:
CUnumber([%金额%])
从本例可以看出,表达式变量除了用来解决嵌套问题外,还可以用来简化表达式。

3、使用SetVariable函数
可以利用SetVariable函数将表达式的值保存在某个变量中,例如:
SetVariable("%A%",Sumfor("订单明细","金额","月份","=",1)) And AddRow(GridName,"月份,数量",1,[%A%])

4、那些函数不能互相嵌套
凡是不能互相嵌套的函数,本帮助文件均用红色星号标记出。

所谓不能嵌套,只是这类函数相互之间不能嵌套,但是这些不能互相嵌的套函数可以和其他函数互相嵌套,例如:
Round(Sumfor("订单明细","金额","订单号","= ",[订单]),2)
这个表达式完全可以得到正确的结果。

需要注意的是,第二种和第三种方法并不是总是可行的,所以如果其中一种方法不可靠,你可以尝试另一种方法。


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


加好友 发短信
等级:火箭侠 帖子:1937 积分:283 威望:0 精华:0 注册:2006/8/12 9:40:00
  发帖心情 Post By:2007/7/26 13:52:00 [只看该作者]

你想达到什么效果?

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


加好友 发短信
等级:蜘蛛侠 帖子:1191 积分:-50 威望:0 精华:0 注册:2007/5/25 12:56:00
  发帖心情 Post By:2007/7/26 13:59:00 [只看该作者]

eval可以解决函数不能嵌套的问题
eval("Split(ListFor(GridName,""第一列""),"+text(MaxFor(GridName,"第一列"))+",1)"

-=-=-=- 以下内容由 lxl2007年07月26日 02:04pm 时添加 -=-=-=-
被你误导了  就算能嵌套 也执行不行了 第2个参数不能是数值  是字符才行

eval("Split(ListFor(GridName,""第一列""),"""+text(MaxFor(GridName,"第一列"))+""",1)")


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


加好友 发短信
等级:火箭侠 帖子:1937 积分:283 威望:0 精华:0 注册:2006/8/12 9:40:00
  发帖心情 Post By:2007/7/26 14:02:00 [只看该作者]

下面引用由lxl2007/07/26 01:59pm 发表的内容:
eval可以解决函数不能嵌套的问题
eval("Split(ListFor(GridName,""第一列""),"+text(MaxFor(GridName,"第一列"))+",1)"

表达式语法存在错误!

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


加好友 发短信
等级:蜘蛛侠 帖子:1191 积分:-50 威望:0 精华:0 注册:2007/5/25 12:56:00
  发帖心情 Post By:2007/7/26 14:11:00 [只看该作者]


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


加好友 发短信
等级:超级版主 帖子:16190 积分:125850 威望:1 精华:0 注册:2006/8/12 12:29:00
  发帖心情 Post By:2007/7/26 14:18:00 [只看该作者]


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


加好友 发短信
等级:超级版主 帖子:16190 积分:125850 威望:1 精华:0 注册:2006/8/12 12:29:00
  发帖心情 Post By:2007/7/26 14:20:00 [只看该作者]

to6楼:还是存在问题的

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


加好友 发短信
等级:蜘蛛侠 帖子:1191 积分:-50 威望:0 精华:0 注册:2007/5/25 12:56:00
  发帖心情 Post By:2007/7/26 14:46:00 [只看该作者]

没有问题啊?
在第一列输入 7  然后按F6 试试


只要不打开公式编辑器点执行,不会出现内存错误
内存错误有两种:
一种是只要运行就错误
另外一种是输入公式的时候错误,通过执行中间步骤后,能输入进去。输进去之后,运行不报错。


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


加好友 发短信
等级:超级版主 帖子:16190 积分:125850 威望:1 精华:0 注册:2006/8/12 12:29:00
  发帖心情 Post By:2007/7/26 17:06:00 [只看该作者]

哦!知道了。谢谢!

 回到顶部
总数 12 1 2 下一页