以文本方式查看主题

-  易表在线答疑  (http://egrid2000.com/dvbbs/index.asp)
--  用户社区  (http://egrid2000.com/dvbbs/list.asp?boardid=2)
----  只计算可见的行  (http://egrid2000.com/dvbbs/dispbbs.asp?boardid=2&id=27840)

--  作者:cnzayu
--  发布时间:2015/3/19 0:11:00
--  只计算可见的行
如表1中有隐藏的行,我现在只想让表1中第一列可见的行的内容为-1,evalfor("表1","第一列","-1")如果公式这样,隐藏的行也同样会变成-1.如果解决。
--  作者:dancedy
--  发布时间:2015/3/19 8:40:00
--  
evalfor("表1","第一列","-1",1,rows,1)
--  作者:cnzayu
--  发布时间:2015/3/19 11:32:00
--  

追问,表1与表2、表3,用编号关联,当表1可见行第一列(逻辑列)为-1后,那么与之关联的表2与表3 里的第一列(逻辑列)如何也为-1.谢谢版主

 

下面公式能实现,但感觉有点麻烦。

Eval("evalfor(""表2"",""第一列"",""-1"",""编号"",""="","+Substitute(listfor("表1","编号","第一列","-1"),"|",") and evalfor(""表2"",""第一列"",""-1"",""编号"",""="",")+")")

[此贴子已经被作者于2015/3/19 12:00:22编辑过]

--  作者:dancedy
--  发布时间:2015/3/19 12:02:00
--  
Evalfor(gridname,"第一列","-1",1,Rows,1) And Evalfor("表2","第一列","[表1!第一列]")
--  作者:cnzayu
--  发布时间:2015/3/19 13:34:00
--  
是应该这么简单,我知道肯定是我复杂化了,谢谢
--  作者:cnzayu
--  发布时间:2015/3/19 13:49:00
--  
版主有一个缺点,在二万多行的数据需要十来秒。
--  作者:dancedy
--  发布时间:2015/3/19 14:57:00
--  

嗯,这个是所有行的重算了,数据量大肯定会慢

如果筛选的只是一个编号,可以只重算这个编号的记录;如果多个编号,看下筛选方式是怎样的

 

最好是传上文件,说明具体需要


--  作者:cnzayu
--  发布时间:2015/3/19 15:12:00
--  
谢谢版主,我用

Eval("evalfor(""表2"",""第一列"",""-1"",""编号"",""="","+Substitute(listfor("表1","编号","第一列","-1"),"|",") and evalfor(""表2"",""第一列"",""-1"",""编号"",""="",")+")")

这个涵数,不到一秒就完成了,就是写函数麻烦点,还是就这样吧。
--  作者:dancedy
--  发布时间:2015/3/19 15:17:00
--  
嗯,如果要根据具体筛选出来的行进行重算,就是使用你的这个公式的