Excel筛选重复数据,保留最后一次的重复数据
Excel根据某一列的值从上到下依次筛选,从第一个单元格开始寻找下面是否有与它相同的,如果有,则删除第一个单元格所在的行,保留最后一个重复数所在的行;如果没有重复的则进入...
Excel根据某一列的值从上到下依次筛选,从第一个单元格开始寻找下面是否有与它相同的,如果有,则删除第一个单元格所在的行,保留最后一个重复数所在的行;如果没有重复的则进入第二个单元格,寻找下面如他相同的值,直到最后一个重复的单元格所在的行,删除前面所有重复行,保留最后一个行如图所示 把右边的输出成左边的 只保留重复数据的最后一次 不重复数据原样保留也可以在重复数据最后一次 和不重复数据后面单元格输入一个固定值 最后筛选也可以
展开
展开全部
典型的字典用法,建议你自己去看下字典,百度! 粘贴VBA运行,即可!
Sub 最后一次出现()
Set d = CreateObject("scripting.dictionary")
arr = Range("b1:c" & [c500].end(xlup).Row)
For i = 1 To UBound(arr)
d.Item(arr(i, 2)) = arr(i, 1)
Next
'结果放在g.h列
[g2].Resize(d.Count) = Application.Transpose(d.Keys)
Columns(8).NumberFormat = "mm-dd"
[h2].Resize(d.Count) = Application.Transpose(d.Items)
End Sub
Sub 最后一次出现()
Set d = CreateObject("scripting.dictionary")
arr = Range("b1:c" & [c500].end(xlup).Row)
For i = 1 To UBound(arr)
d.Item(arr(i, 2)) = arr(i, 1)
Next
'结果放在g.h列
[g2].Resize(d.Count) = Application.Transpose(d.Keys)
Columns(8).NumberFormat = "mm-dd"
[h2].Resize(d.Count) = Application.Transpose(d.Items)
End Sub
追问
虽然不明白这个公式,但还是谢谢你!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的问题适合用vba做,用函数实现很难。
大体思路是
先按要去重的关键字所在列排序以加快筛选去重的速度
通过循环语句进行去重即删除重复行操作。
需要具体帮助+PP2327285699
追问
谢谢,已解决!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在G2单元格输入以下数组公式,按 Ctrl+Shift+Enter组合键,然后向下填充公式
=INDEX($C1:$C11,SMALL($B1:$B11=$F2,ROW($1:$11),4^8),ROW(A1)))
=INDEX($C1:$C11,SMALL($B1:$B11=$F2,ROW($1:$11),4^8),ROW(A1)))
追问
谢谢,已解决!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询