У меня есть лист с 2 столбцами. первый столбец имеет уникальные значения, а второй столбец имеет много дубликатов.

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

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

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

2 ответа2

1

Ваш комментарий указывает, что дубликаты не обязательно являются последовательными. Вот формула, которая справится с этим. Создайте новый столбец отображения в C и при желании скройте столбец B. Скажем, ваши данные начинаются со строки 2. Ячейка C2 будет:

    =IF(ISERROR(MATCH(B2,C$2:C2,0)),B2,"")

Скопируйте это вниз по столбцу. Это позволит проверить, соответствует ли значение в столбце B записи в столбце C. Если это так, он возвращает пустое. В противном случае он использует значение столбца B.

0

Нажмите на любую ячейку в столбце, который вы хотите обработать, и запустите этот небольшой макрос:

Sub DuplicateKiller()
    Dim N As Long, IR As Long, v As Variant
    Dim i As Long, rng As Range
    IR = ActiveCell.Column
    N = Cells(Rows.Count, IR).End(xlUp).Row
    Set r = Range(Cells(1, IR), Cells(N, IR))

    For i = N To 1 Step -1
        With Cells(i, IR)
            v = .Value
            If Application.WorksheetFunction.CountIf(r, v) > 1 Then
                .ClearContents
            End If
        End With
    Next i
End Sub

Макросы очень просты в установке и использовании:

  1. ALT-F11 открывает окно VBE
  2. ALT-I ALT-M открывает новый модуль
  3. вставьте материал и закройте окно VBE

Если вы сохраните книгу, макрос будет сохранен вместе с ней. Если вы используете версию Excel более поздней, чем в 2003 году, вы должны сохранить файл как .xlsm, а не .xlsx

Чтобы удалить макрос:

  1. откройте окно VBE, как указано выше
  2. очистить код
  3. закройте окно VBE

Чтобы использовать макрос из Excel:

  1. ALT-F8
  2. Выберите макрос
  3. Нажмите RUN

Чтобы узнать больше о макросах в целом, смотрите:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

а также

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

Макросы должны быть включены, чтобы это работало!

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