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

У меня есть база данных +- 15000 строк. В столбце U есть коды моделей, которые мне нужно отфильтровать. В столбце H у меня есть список уникальных номеров активов. Несколько моделей, каждая с уникальным номером актива. Поэтому мне нужен один из уникальных номеров активов в столбце H для каждого отфильтрованного кода модели, который затем копируется и вставляется в столбец A Sheet2. Я могу фильтровать с помощью приведенного ниже кода, но как мне получить одно уникальное значение в столбце H?

Sub SumGroups()
    Dim lastCode As Long, lastFiltCode As Long

    'Determine Last Row in Column U (Unfiltered Codes)
     With Worksheets("Database") lastCode = .Range("U" & .Rows.Count).(xlUp).Row

    'Filter Unique Codes into Column A Sheet2
    .Range("U2:U" & lastCode).AdvancedFilter Action:=xlFilterCopy, _
            CopyToRange:=Worksheets("Sheet2").Range("A1"), Unique:=True
    End With
End Sub
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
0
0
30
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Хотя я бы сказал, что самый простой способ сделать это — использовать Сводная таблица, ниже приведено решение для вашего кода, если вам нужно решение с использованием VBA.

Вы можете использовать функцию RemoveDuplicates после копирования данных на Лист2, чтобы сохранить только уникальные значения, как показано ниже.

Я еще не проверял, работает ли это, но, насколько я вижу, должно.

Dim lastCode As Long, lastFiltCode As Long

'Determine Last Row in Column U (Unfiltered Codes)
 With Worksheets("Database") lastCode = .Range("U" & .Rows.Count).(xlUp).Row

'Filter Unique Codes into Column A Sheet2
.Range("U2:U" & lastCode).AdvancedFilter Action:=xlFilterCopy, _
        CopyToRange:=Worksheets("Sheet2").Range("A1"), Unique:=True
End With
'Use Header:=xlNo below is Sheet2 doesn't have header
Worksheets("Sheet2").Range("A1:A100").RemoveDuplicates Columns:=Array(1), Header:=xlYes
End Sub

Пожалуйста, измените Диапазон("A1:A100") выше на соответствующий диапазон в Sheet2.

спасибо, ваша идея удаления дубликатов отличная. Я не использовал ваш код, хотя.

Anthony 11.04.2019 09:45

Другие вопросы по теме