| 发表于:2008-01-13 14:18:358楼 得分:0 |
.formular1c1 = "=if(countif(r1c2:rc[-11],rc[-11])=2,rc[-11],"""")" 就是给单元格输入公式,即 m1单元格=if(countif($b$1:b1,b1)=2,b1,"") m2单元格=if(countif($b$1:b2,b2)=2,b2,"") m3单元格=if(countif($b$1:b3,b3)=2,b3,"") . . . 具体思路: 假定当前为第8行 1.在m8中输入公式,统计b8的值在 b1:b8 中的个数,如果是2 ,说明有两个重复,取出b8,放在m8;如果为0 或 1,说明没有重复,m8="";如果> 2,说明有两个以上的重复值,也就说明前面已经去过,可不用再取,m8="".这样在m列中就得到只有重复值得b列的值,对m列排序,重复的值就到了上边,完成了你的要求。 如: b列 m列公式 m列得到的结果 m列排序后结果 b1:a =if(countif($b$1:b1,b1)=2,b1,"") a b2:b =if(countif($b$1:b2,b2)=2,b2,"") b b3: =if(countif($b$1:b3,b3)=2,b3,"") c b4:d =if(countif($b$1:b4,b4)=2,b4,"") b5:c =if(countif($b$1:b5,b5)=2,b5,"") b6:b =if(countif($b$1:b6,b6)=2,b6,"") b b7: =if(countif($b$1:b7,b7)=2,b7,"") b8:e =if(countif($b$1:b8,b8)=2,b8,"") b9:a =if(countif($b$1:b9,b9)=2,b9,"") a b10:a =if(countif($b$1:b10,b10)=2,b10,"") b11:c =if(countif($b$1:b11,b11)=2,b11,"") c 我测试过,没问题 sub jszq() dim ddd() with range("m1:m" & [b65536].end(xlup).row) '输入公式 .formular1c1 = "=if(countif(r1c2:rc[-11],rc[-11])=2,rc[-11],"""")" '将公式的计算结果转为值,相当于"复制-选择性粘贴-数值" ddd = .value: .value = ddd '对m列排序 .sort key1:=range("m1") end with end sub | | |
|