Excel合并两列

时间:2014-06-11 06:19:42

标签: excel excel-2003

我有两列,每列都有略微不同的国家/地区列表

e.g。

 A         B         C
 Japan     Japan
 US        China
 UK        Brazil
 India     Canada
 China     Mexico
 Brazil    Germany
           France
           Peru

如何“合并”两列,以便我可以在C列的A列或B列中存在值,而不重复这些值?

 A         B         C
 Japan     Japan     Japan
 US        China     US
 UK        Brazil    UK
 India     Canada    India
 China     Mexico    China
 Brazil    Germany   Brazil
           France    Canada
           Peru      Mexico
                     Germany
                     France
                     Peru

注意:我目前正在使用excel 2003

非常感谢!

编辑:这是我目前的尝试,在“导出和导入测试”表格中,G列,我正在尝试从A列和D列的源代码中进行VLOOKUP,并将其与OR公式“合并”,然后排序它正确地在下一列。不幸的是,它现在有一个N / A错误......

http://wikisend.com/download/391826/Sample%20test.xls

EDIT2:我尝试使用下面发布的宏,同时编辑(通过猜测)它以满足我的需要,宏变成了这个:

Sub Macro1()
'
' Macro1 Macro
'

'
    Range("A3").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Range("G3").Select
    ActiveSheet.Paste
    Range("D3").Select
    Range(Selection, Selection.End(xlDown)).Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("G3").Select
    Selection.End(xlDown).Select
    Range("G30").Select
    ActiveSheet.Paste
    Range("G3").Select
    Range(Selection, Selection.End(xlDown)).Select
    Application.CutCopyMode = False
    ActiveSheet.Range("$G$3:$G$60").RemoveDuplicates Columns:=1, Header:=xlNo
End Sub

这是结果(G栏):

enter image description here

它没有完全奏效(存在重复项)并且我得到了“对象不支持支持此属性或方法”错误。

2 个答案:

答案 0 :(得分:1)

这是一种黑客行为,但你可以这样做:

  1. 将两列都粘贴到同一列(A)中。
  2. 对A列进行排序。
  3. 在其旁边创建一个新列(B)并放置公式=IF(A2=A1, "", A2),然后向下拖动。只有在与单词不同时才会打印出单词 上面的一句话。
  4. 按列B中的值复制并粘贴,然后对列B进行排序以将空单元格置于顶部。
  5. 删除空单元格。

答案 1 :(得分:1)

这样的宏怎么样(我假设数据在第2行开始,没有间隙的情况下在A,B和C列中):

Sub Macro1()
'
' Macro1 Macro
'

'
    Range("A2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Range("C2").Select
    ActiveSheet.Paste
    Range("B2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Application.CutCopyMode = False
    Selection.Copy
    Range("C2").Select
    Selection.End(xlDown).Select
    Range("C10").Select
    ActiveSheet.Paste
    Range("C2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Application.CutCopyMode = False
    ActiveSheet.Range("$C$2:$C$16").RemoveDuplicates Columns:=1, Header:=xlNo
End Sub