Excel 自动排序和匹配数据

Excel 自动排序和匹配数据

我正在尝试使用公式查找匹配项并根据匹配的数据(数字)对列进行排序。这些组的数字相当大(32,000 行)。

我可以对数据进行排序,并让公式告诉我是否匹配,但我必须对每一列单独进行排序,然后必须调整每个不匹配的单元格,通过向上或向下移动它们来匹配相邻的单元格。

是否可以使用公式对数据进行排序,并实际移动单元格以进行匹配,从而使两个单元格显示相同的数据?如果没有匹配的数据,则只显示空白,或者更好的是,显示两个单元格的总和之差?

样本数据

答案1

这是我编写的一个宏,它可以满足您的要求。它已经假设了两个排序列表。修改它以适合您的列,删除不需要的列,并可能在开头添加排序功能。尽情享受吧!

Sub compareCheckNumbers()

' 宏1 宏

' 比较支票号码,如果行匹配则删除

rowNum = 3
Do
    If (Range("C" & rowNum).Value > Range("L" & rowNum).Value) Then
        'shift down first set
        Range("A" & rowNum & ":G" & rowNum).Select
        Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    ElseIf (Range("C" & rowNum).Value < Range("L" & rowNum).Value) Then
        'else shift down second set
        Range("J" & rowNum & ":P" & rowNum).Select
        Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    ElseIf (Range("C" & rowNum).Value = Range("L" & rowNum).Value And Range("D" & rowNum).Value = Range("M" & rowNum).Value And Range("F" & rowNum).Value = Range("O" & rowNum).Value) Then
        'delete outstanding data if matching
        Range("A" & rowNum & ":G" & rowNum).Select
        Selection.ClearContents
    End If
    rowNum = rowNum + 1
Loop While (Range("C" & rowNum).Value <> "")

子目录结束

相关内容