Я пытаюсь использовать формулу для поиска совпадений и сортировки столбцов на основе сопоставленных данных (чисел). Группы довольно большие (32 000 строк) чисел.

Я могу отсортировать данные и по формуле сказать, есть ли совпадение, но мне нужно отсортировать каждый столбец по отдельности, а затем мне нужно настроить каждую ячейку, которая не совпадает, перемещая их вверх или вниз, чтобы соответствовать соседней ячейке.

Можно ли с помощью формулы отсортировать данные и фактически переместить ячейки, чтобы они совпали, чтобы две ячейки отображали одинаковые данные? и если нет ничего, чтобы соответствовать этому, или просто показывает пустое или даже лучше, разница в сумме двух ячеек?

Пример данных

1 ответ1

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 <> "")

End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .