-->

合并重复条目在Excel中唯一的数据(Combining duplicate entries wit

2019-08-18 21:42发布

我有一个Excel数据库和我试图避免做一些手工重复数据的结合。 我有一大堆的基本上是相同的除了标签栏房源。 我想有它要做的就是将这些5个房源为1名上市,使一个逗号在一个单元格分隔列表的类别。

开启此

这个

是否有实现这一目标的方法吗? 我的文档中有一对夫妇一千上市,所以我显然是试图避免了人工编辑的路线。 我是一个Excel新手,所以任何手握持或教程你可以点我将不胜感激。

Answer 1:

这也可以使用公式来完成。 在我的例子工作,数据需要由第一列进行排序,并有将需要一个标题行。

您将需要两列(C&d)。 首先,添加一个公式,基本上说来连接在列B中的数据,如果在列A的数据是相同的,因为它上面的行,否则复位级联。 下一列将包含一个公式来确定最终的串连,所以你可以稍后进行排序。

这是我将如何在列A&B(再次,数据需要由A列进行排序,并有将需要一个标题行)列表和类别做到这一点:

这里的结果。 现在我的整个范围和粘贴值复制到另一个工作表。 零列d行是我想使用什么。 经柱d排序将他们漂浮在上面。



Answer 2:

这将(应该)生成源表与串联重复的一个新的工作表。

要使用下面的代码,你需要把它添加到新的模块中的VBA编辑器

打开VBA编辑器快捷方式是Alt+F11 (适用于Windows)和Alt+Fn+F11 (适用于Mac)

一旦编辑器打开在主菜单栏从“插入”菜单中选择添加一个新的模块。 它应该会自动打开模块准备接受的代码,如果没有,你需要选择它从Project Explorer(将命名为“ModuleN”,其中N是一个可用的数字)。

我不知道如果“的Scripting.Dictionary”是OSX可用,但它不能伤害尝试。

Option Explicit

Sub Main()
Dim Source As Worksheet: Set Source = ThisWorkbook.Worksheets("Sheet1")
Dim Destination As Worksheet: Set Destination = ThisWorkbook.Worksheets("Sheet2")

Dim Records As Object: Set Records = CreateObject("Scripting.Dictionary")

Dim Data As Variant
Dim Index As Long
Dim Row As Integer: Row = 1

Data = Source.Range("A1", "B" & Source.Rows(Source.UsedRange.Rows.Count).Row).Value2

For Index = LBound(Data, 1) To UBound(Data, 1)
    If Records.Exists(Data(Index, 1)) Then
        Destination.Cells(Records(Data(Index, 1)), 2).Value2 = Destination.Cells(Records(Data(Index, 1)), 2).Value2 & ", " & Data(Index, 2)
    Else
        Records.Add Data(Index, 1), Row
        Destination.Cells(Row, 1).Value2 = Data(Index, 1)
        Destination.Cells(Row, 2).Value2 = Data(Index, 2)
        Row = Row + 1
    End If
Next Index

Set Records = Nothing

End Sub


文章来源: Combining duplicate entries with unique data in Excel