1234

ExcelHome技术论坛

用户名  找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

帖子
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 170|回复: 7

[已解决] 新人求助,如何在不删除行的情况下,给特定列的内容去重

[复制链接]

TA的精华主题

TA的得分主题

发表于 2025-1-24 18:38 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 传说中的年糕 于 2025-1-25 00:00 编辑

各位Excel高手,大家好!
我遇到了一个棘手的问题,希望能得到大家的帮助。我们单位登记了多条合同收款信息,每条信息前都附带有原合同信息,如果直接合计,会导致重复计入的合同金额的合计数与实际签约的合同金额不符


但是,如果直接使用Excel的“删除重复项”功能,会连同关键的收款信息一起删除,这显然不是我想要的结果。手动删除也不现实,因为涉及的条目数量多达5万条,工作量巨大。

因此,我在这里向大家求助:如何在不删除其他行信息的情况下,仅对合同金额列进行去重处理?我目前使用的是Excel2021版本,是否有一些高级功能或者技巧可以实现这个需求?


为了更直观地说明问题,我附上了相关的Excel示例文档和截图,在示例文档中,你可以看到合同金额列中存在多个重复的值,而这些重复值导致和实际情况产生差异。

希望各位高手能够不吝赐教,提供一些实用的解决方案或者思路。如果有可能的话,最好能够附上详细的操作步骤或者公式,让我这个Excel小白也能轻松上手。

提前祝看帖和回帖的大佬都顺心顺意身体好,阖家欢乐发大财。



需求详见下图及附件XLS文档:

QQ图片20250124183426.png







需求表格1.rar

7.91 KB, 下载次数: 11

TA的精华主题

TA的得分主题

发表于 2025-1-24 19:31 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
  1. =LET(x,REDUCE(B2:E2,UNIQUE(B3:B12),LAMBDA(x,y,LET(a,UNIQUE(FILTER(C3:C12,B3:B12=y)),VSTACK(x,CHOOSECOLS(IFNA(HSTACK(a,FILTER(HSTACK(B3:B12,D3:E12),B3:B12=y)),""),2,1,3,4))))),VSTACK(x,HSTACK("合计",SUM(TAKE(DROP(x,1,1),,1)),SUM(DROP(x,1,2)),"")))
复制代码

堆一个
微信截图_20250124182742.png

TA的精华主题

TA的得分主题

发表于 2025-1-24 19:32 | 显示全部楼层
如果姓名和金额都是连续的,可以用vba处理

TA的精华主题

TA的得分主题

发表于 2025-1-24 19:50 | 显示全部楼层
vba参与一下,仅供参考。。。
image.png
image.png

需求表格1.zip

18.77 KB, 下载次数: 2

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2025-1-24 19:51 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
代码如下。。。
Sub test()
    Application.DisplayAlerts = False
    Dim wb As Workbook, sht As Worksheet
    Set wb = ThisWorkbook
    With wb.Sheets("sheet2")
        r = .Cells(3, 2).End(4).Row
        arr = .Range(.[b1], .Cells(r, 5))
        For i = r - 1 To 4 Step -1
            If arr(i, 1) = arr(i - 1, 1) And arr(i, 2) = arr(i - 1, 2) Then
                Cells(i - 1, 3).Resize(2).Merge
            End If
        Next
        .Cells(r, 3) = "=sum(r[-1]c:r3c)"
    End With
    Application.DisplayAlerts = True
    Beep
End Sub

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2025-1-24 19:59 | 显示全部楼层
  1. =LET(x,HSTACK(IF(B2:B11&C2:C11<>B3:B12&C3:C12,C3:C12,""),D3:D12),HSTACK(B2:B13,VSTACK(C2:D2,x,BYCOL(x,SUM)),E2:E13))
复制代码

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2025-1-24 22:38 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2025-1-25 00:02 | 显示全部楼层
感谢大佬们的慷慨赐教 解我燃眉之急 感激之心无以言表
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

1234

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-2-3 13:36 , Processed in 0.044931 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表