我有一个Excel数据库和我试图避免做一些手工重复数据的结合。 我有一大堆的基本上是相同的除了标签栏房源。 我想有它要做的就是将这些5个房源为1名上市,使一个逗号在一个单元格分隔列表的类别。
开启此
这个
是否有实现这一目标的方法吗? 我的文档中有一对夫妇一千上市,所以我显然是试图避免了人工编辑的路线。 我是一个Excel新手,所以任何手握持或教程你可以点我将不胜感激。
我有一个Excel数据库和我试图避免做一些手工重复数据的结合。 我有一大堆的基本上是相同的除了标签栏房源。 我想有它要做的就是将这些5个房源为1名上市,使一个逗号在一个单元格分隔列表的类别。
开启此
这个
是否有实现这一目标的方法吗? 我的文档中有一对夫妇一千上市,所以我显然是试图避免了人工编辑的路线。 我是一个Excel新手,所以任何手握持或教程你可以点我将不胜感激。
这也可以使用公式来完成。 在我的例子工作,数据需要由第一列进行排序,并有将需要一个标题行。
您将需要两列(C&d)。 首先,添加一个公式,基本上说来连接在列B中的数据,如果在列A的数据是相同的,因为它上面的行,否则复位级联。 下一列将包含一个公式来确定最终的串连,所以你可以稍后进行排序。
这是我将如何在列A&B(再次,数据需要由A列进行排序,并有将需要一个标题行)列表和类别做到这一点:
这里的结果。 现在我的整个范围和粘贴值复制到另一个工作表。 零列d行是我想使用什么。 经柱d排序将他们漂浮在上面。
这将(应该)生成源表与串联重复的一个新的工作表。
要使用下面的代码,你需要把它添加到新的模块中的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