Скопируйте уникальный список на основе критериев в другом столбце vba excel

Я хочу использовать VBA для извлечения уникального упорядоченного списка с учетом условий в другом столбце. Итак, у меня есть две колонки A, B.

AB ======== a FALSE b FALSE c TRUE a TRUE b FALSE c TRUE 

Должен привести список

 C == a c 

Я очень, очень новичок в VBA, поэтому любая помощь будет оценена.

О, и второй список будет обновляться с каждым изменением первого, поэтому его нужно стереть, чтобы убедиться, что нет остатков, если, например, для второго «a» установлено значение FALSE.

Что ты думаешь об этом? Сначала добавьте библиотеку MS Scripting.

Вариант Явный

 Sub Test() Dim oRange As Range Dim dict As Dictionary Dim vArray As Variant Dim vItem As Variant Dim sKey As String Dim sValue As String Dim iCompare_TRUE As Integer Dim lCnt As Long Dim lCnt_Rows As Long Set dict = New Dictionary Set oRange = ThisWorkbook.Sheets(1).Range("A1:B6") For lCnt = 1 To oRange.Rows.Count sKey = oRange(lCnt, 1) sValue = oRange(lCnt, 2) iCompare_TRUE = StrComp(sValue, "True") If Not dict.exists(sKey) And iCompare_TRUE = 0 Then With dict .Add sKey, sValue End With End If Next lCnt ReDim vArray(1 To dict.Count) vArray = dict.Keys lCnt_Rows = UBound(vArray) + 1 Set oRange = ThisWorkbook.Sheets(1).Range(Cells(1, 3), Cells(lCnt_Rows, 3)) oRange.Value = Application.Transpose(vArray) End Sub 

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

  1. Вставьте пустую строку в верхней части таблицы, чтобы она служила в качестве строки заголовка.
  2. Создайте новый столбец формулы, который будет перечислять элементы столбца «A», только если столбец «B» равен true. Например, поместите следующую формулу в ячейку D2, затем скопируйте ее: =IF(B2,A2,"") .
  3. Теперь вы можете применить технику, описанную на второй странице, связанную с t.thielemans выше.

Одним из потенциальных недостатков этого подхода является то, что пустые ячейки, возвращаемые формулой, когда столбец B является «ЛОЖНЫМ», не исчезают – у вас все равно будет пустой результат в отфильтрованном виде.

Я скопирую ссылку здесь для удобства: получение уникальных значений в Excel с использованием только формул

Interesting Posts

Xlwings – добавление столбцов

Applescript не откроет книгу Excel 2011

Excel: создать список проверки динамических условных данных

Как получить доступ к системе на основе Excel на другую рабочую станцию, например Webhost в webdev

Название ячейки FInd Defined Range

Вопрос о формуле Excel

Excel – найдите соответствующие значения, затем сравните дополнительные соответствующие значения

Импорт Excel дает ошибку «System.InvalidOperationException: поставщик Microsoft.Jet.OLEDB.4.0» не зарегистрирован »

excel vba изменение цвета диаграммы для точки данных на основе значения точки

отличные сводные таблицы, группирующие даты по их отношению к сегодняшнему дню

Экспорт DataTable в Excel удаляет разрывы строк

Excel VBA – Копирование листа в новую книгу X раз

Извлечение данных Excel в файл с разделителями каналов – Как обратиться к другой книге

Колонка отсутствует от excel spreedshet

VBA Word Doc не будет закрываться на определенных компьютерах или с некоторыми версиями Word

Давайте будем гением компьютера.