以文本方式查看主题

-  易表在线答疑  (http://egrid2000.com/dvbbs/index.asp)
--  用户社区  (http://egrid2000.com/dvbbs/list.asp?boardid=2)
----  [求助]如何按条件删除重复行?  (http://egrid2000.com/dvbbs/dispbbs.asp?boardid=2&id=1588)

--  作者:hzcaqjf
--  发布时间:2011/12/7 17:02:00
--  [求助]如何按条件删除重复行?
即根据某一列的值,来决定删除属于哪几列的重复行.
egd文件下载
--  作者:wjq1072
--  发布时间:2011/12/7 20:00:00
--  
不理解楼主的意思
--  作者:hzcaqjf
--  发布时间:2011/12/8 8:22:00
--  
  不好意思,前面没有表述清楚.我的意思是:
  如果第一列等于"a",那么只删除第四列中重复的行(只保留一行).第一列不等于"a"的行保持不变.
  如果第一列等于"b",那么只删除第三列和第四列同时重复的行(只保留一行).第一列不等于"b"的行保持不变.
  如果第一列等于"c",那么删除第二列、第三列和第四列同时重复的行(只保留一行).第一列不等于"c"的行保持不变.
  if([第一列]="a",DelReptRows(grid,"第四列"),if([第一列]="b",DelReptRows(grid,"第三列","第四列"),if([第一列]="c",DelReptRows(grid,"第二列","第三列","第四列"),true)))
  这个按钮公式达不到要求.确实想不出其它的办法,只好向论坛求助.谢谢版主的指点.


--  作者:wjq1072
--  发布时间:2011/12/8 9:26:00
--  
这样试试?
AddCol(Grid,"k",1, False ) And EvalFor(Grid,"k","CountFor(Grid,""第四列"",""="",[第四列],1,Row)") And DelFor(Grid,"第一列","=","a","k"," > ",1) And EvalFor(Grid,"k","CountFor(Grid,""第四列"",""="",[第四列],""第三列"",""="",[第三列],1,Row)") And DelFor(Grid,"第一列","=","b","k"," > ",1) And EvalFor(Grid,"k","CountFor(Grid,""第四列"",""="",[第四列],""第三列"",""="",[第三列],""第二列"",""="",[第二列],1,Row)") And DelFor(Grid,"第一列","=","c","k"," > ",1) And DeleteCol(Grid,"k")
--  作者:lyang70
--  发布时间:2011/12/8 9:30:00
--  
问题:
1、首先要搞明白是删除整行数据还是仅仅清除重复单元格的内容?
2、如果是删除整行数据,假设第一列等于“c”,而第二列、第三列和第四列都用重复内容,哪删除行的次序是怎样的?是四、三、二还是二、三、四或其他?
--  作者:hzcaqjf
--  发布时间:2011/12/8 10:08:00
--  
是删除整行.
用wjq1072版主的公式,完全解决了我的问题.
根据wjq1072和lyang70两位老师的提醒,以后提问要说明得清楚、完整一些。
在此感谢!