`
阅: 23174 | 回: 39
重复数据去重合并 全部 , 编号:01655 快速回复
发表于 2021/9/17 13:55:00   最佳方案
头像 等级:传说级人物
积分:2577
财富值:1863
身份:普通用户
使用 方方格子工具箱 里面的 分类汇总功能即可实现。
我的个性签名
发表于 2024/2/11 21:50:47   
头像 等级:学有小成
积分:10
财富值:2
身份:普通用户

回复:楼主


hello,打开VBA 复制以下代码 ,注意{原始表和目标表格的名称如有需要需要自己替换一下},亲测 OK 跑的正常.

Sub MergeDuplicates()
    Dim wsSource As Worksheet
    Dim wsDestination As Worksheet
    Dim sourceRange As Range
    Dim destinationRange As Range
    Dim lastRow As Long
    Dim i As Long
    
    ' 定义源表和目标表
    Set wsSource = Sheets("Sheet1") ' 源表
    Set wsDestination = Sheets("Sheet2") ' 目标表
    
    ' 获取源表数据范围
    lastRow = wsSource.Cells(wsSource.Rows.Count, 1).End(xlUp).Row
    Set sourceRange = wsSource.Range("A2:D" & lastRow) ' 假设数据从第2行开始
    
    ' 遍历源表数据,并合并去重
    For Each cell In sourceRange.Columns(1).Cells
        ' 判断身份证、姓名和科室都相同的行是否已存在于目标表中
        If Application.WorksheetFunction.CountIfs(wsDestination.Columns(1), cell.Value, wsDestination.Columns(2), cell.Offset(0, 1).Value, wsDestination.Columns(3), cell.Offset(0, 2).Value) = 0 Then
            ' 找到与当前行身份证、姓名和科室相同的行
            ' 注意:这里假设身份证在第1列,姓名在第2列,科室在第3列
            Set destinationRange = wsDestination.Cells(wsDestination.Rows.Count, 1).End(xlUp).Offset(1, 0)
            
            ' 复制行数据到目标表
            cell.Resize(, 4).Copy destinationRange
        End If
    Next cell
End Sub


我的个性签名
发表于 2024/2/24 9:24:12   
头像 等级:初学者
积分:1
财富值:2
身份:普通用户

回复:4楼


我的个性签名
发表于 2024/2/24 14:27:55   
头像 等级:初学者
积分:4
财富值:2
身份:普通用户
比自带的分类汇总好用,功能更加灵活点
我的个性签名
发表于 2024/3/13 13:46:47   
头像 等级:初学者
积分:3
财富值:2
身份:普通会员
求一个EXCELde VB代码,打开文件强制启用宏,不启用无法查看文件内容,文件到期自动销毁。
我的个性签名
发表于 2024/3/13 13:47:13   
头像 等级:初学者
积分:3
财富值:2
身份:普通会员

回复:33楼


求一个EXCELde VB代码,打开文件强制启用宏,不启用无法查看文件内容,文件到期自动销毁。
我的个性签名
发表于 2024/4/7 15:50:38   
头像 等级:初学者
积分:2
财富值:1
身份:普通用户
牛逼
我的个性签名
发表于 2024/4/9 21:47:17   
头像 等级:初学者
积分:1
财富值:2
身份:普通用户
附件:   下载    在线编辑
我的个性签名
Dle
发表于 2024/4/12 12:43:31   
头像 等级:初学者
积分:7
财富值:1
身份:普通用户
在下面表中,是我用完去重合并后 ,订单号我想向右侧一般合并成这样能做到吗?

我的个性签名

快速回复

目前不允许游客发表,请 登录 注册 后再发贴。