excel,VBA,重复值

我有一个大的电子表格,我被要求编辑。 基本上无论数据来自何处,它创build了个人名称,国家,开始date和结束date的几个重复。 是否有可能获得相邻单元格的开始和结束date,并删除重复的数据?

我提供了一个屏幕截图。 手工复制,粘贴和删除操作需要很长时间,因为这个电子表格有超过2300行,大约50%是需要编辑的重复项。

在这里输入图像说明

谢谢

VBA应该不是必要的,只需添加一个新的列与公式:

=CONCATENATE(C1,D1) 

将列字符replace为开始date和结束date的列字母。

然后,您可以使用Excel删除新列上的重复function(数据 – >删除重复项)

在这里输入图像说明

在这里输入图像说明

使用SQL是合适的。

 Sub myQuery() Dim strSQL As String Dim strTable As String Dim Ws As Worksheet strTable = "[" & ActiveSheet.Name & "$]" strSQL = "SELECT NAME, COUNTRY, MIN([Start Date]) as [Start Date] , max([End Date]) as [End Date] " strSQL = strSQL & " FROM " & strTable & " " strSQL = strSQL & " Where not isnull(NAME) " strSQL = strSQL & " Group by NAME, COUNTRY " Set Ws = Sheets.Add exeSQL strSQL, Ws End Sub Sub exeSQL(strSQL As String, Ws As Worksheet) Dim Rs As Object Dim strConn As String Dim i As Integer strConn = "Provider=Microsoft.ACE.OLEDB.12.0;" & _ "Data Source=" & ThisWorkbook.FullName & ";" & _ "Extended Properties=Excel 12.0;" Set Rs = CreateObject("ADODB.Recordset") Rs.Open strSQL, strConn If Not Rs.EOF Then With Ws .Range("a1").CurrentRegion.ClearContents For i = 0 To Rs.Fields.Count - 1 .Cells(1, i + 1).Value = Rs.Fields(i).Name Next .Range("a" & 2).CopyFromRecordset Rs .Columns.AutoFit End With End If Rs.Close Set Rs = Nothing End Sub