Добрый день! Нужна помощь в поиске способа решения задачи Есть таблица в первом столбце которой данные с дубликатами, во втором и третьем даты которые не дублируются Пример дубликата
20000007
__________21.06.2014 19:01:43
_________14.08.2014 12:24:25
20000007
__________21.06.2014 19:01:43
_________09.02.2015 10:29:33
20000007
__________1.06.2015 15:07:00
Надо определить "старые" дубликаты, сравнивая дату сначала по второму столбцу, если они совпадают то по третьему.
Мне кроме как перебор каждой ячейки и поиск ее всех дубликатов с последующей записью их (всей строки) в массив и сравнению в массиве (временной таблицей на отдельном листе) ничего не приходит. Массивы для меня темный лес. Может есть другие способы менее замороченные?
Либо как вариант каждому найденному дубликату присвоить переменную и потом оперировать с ними обращаясь для сравнения к нужным ячейкам через Offset. Но я не представляю как присвоить каждое найденное значение новой переменной, а не перезаписывать старую. В итоге должно получиться переменная1_1 переменная1_2 переменная2_1 переменная2_2 переменнаяN_1 переменнаяN_2 потом будет найдена максимальное значение среди переменная*_1, а если если они равны то среди переменная*_2
Код
With Range("a2:a15")
Set c = .Find(cel, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
переменная1_1 = c.offset (0,1)
переменная1_2 = c.offset (0,2)
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
задача для словаря - упорядоченный тип данных(пара: ключ- объект) со встроенной проверкой на уникальность ключа заносите данные в словарь, используя первый столбец в качестве ключа. объект будет массивом из двух элементов - второй и третий столбцы как только находится дубликат ключа, проверяете даты, если новый элемент более новый, то замещаете даты в словаре на новый
Слэн написал: задача для словаря - упорядоченный тип данных(пара: ключ- объект) со встроенной проверкой на уникальность ключа заносите данные в словарь, используя первый столбец в качестве ключа. объект будет массивом из двух элементов - второй и третий столбцы как только находится дубликат ключа, проверяете даты, если новый элемент более новый, то замещаете даты в словаре на новый
можно немного поподробней? я представляю так. создаем словарь: циклом по ячейкам с ключем, заполняем словарь, при этом внутри цикла каждый раз создаем массив с объектом из двух смежных ключу ячеек если ключ совпадает то еще один вложенный цикл сравнивает массивы и записывает самый свежий (тут вопрос, как сравнить объект словаря с массивом еще не записанным в словарь?) и делает что то в исходной таблице, например вычеркивает "старый" ключ так?