Excel表格中如何将AB两列进行对比找到重复项,把A列中找到的重复项同行的B列数据放到B列重复项后的C列中?

就例如下面的,怎么把图1通过函数变成图2,如果excel不行可不可以用其他软件

假设我的表名“区划”,在EFG三列中显示整理后的数据

    右键表名【区划】,点击查看代码

    输入以下代码:

Sub 区划整理()

    Dim i As Integer

    Dim j As Integer

    Dim x As Integer

    Dim n As Integer

  

        n = Application.CountA(Range("A:A"))

        i = 1

        x = 1

        Do While i <= n

            If Cells(i, 1) = "中国" Then

                Cells(x, 5) = Cells(i, 1)

                Cells(x, 6) = Cells(i, 2)

                j = 1

                Do While j <= n

                    If Cells(j, 1) = Cells(i, 2) Then

                        Cells(x, 7) = Cells(j, 2)

                        x = x + 1

                    End If

                    j = j + 1

                Loop

            End If

            i = i + 1

        Loop

End Sub

3.保存,会提示是否启用宏功能,选“是”

4.【视图】——【宏】——【查看宏】,选择刚才编写的宏【区划整理】,点击执行。

追问

这个如果最上层的不只是中国怎么代码要怎么编呢

追答

看你具体数据。

追问

就比如不只有中国还有美国英国,那那个代码上就不能写=“中国”了吧

追答

对的,你可以先根据A列做一个排序,然后把
If Cells(i, 1) = "中国" Then
改成
If Cells(i, 1) = "中国" or Cells(i, 1) = "美国" or Cells(i, 1) = "英国"Then
如果有更多的国别的话,可以使用辅助列

追问

辅助列是个什么呢

追答

比如在C列手动做一个辅助:当A列是国别时,C列相应位置的值就填1,这样,只要判断C列的值是否为1,就等于判断A列的值是否是国别。
If Cells(i, 1) = "中国" Then

就改成
If Cells(i, 3) = 1 Then

另外也可以手动建立一个数组,包含所有国别名称,然后判断A列的值是否属于这个数组。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-01-05

注意:条件是不可以重复的,重复就乱了

第2个回答  2019-11-29
可以的,需要编程来实现,不用借助其它软件追问

可以具体写下怎么操作么

相似回答