Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.01.2011, 12:58   #1
Deltist
Новичок
Джуниор
 
Регистрация: 14.01.2011
Сообщений: 2
По умолчанию Удаление дубликатов

Всем привет!

Есть файл xlsx, один столбец с текстовыми значениями, строк примерно 200000. Некоторые значения повторяются один раз, некоторые больше, некоторые десятки и сотни раз. Есть ли быстрый способ удалить дубликаты, сделав так, чтобы каждое значение повторялось только один раз? Заранее спасибо.
Deltist вне форума Ответить с цитированием
Старый 14.01.2011, 13:01   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Так ведь в 2007 есть специнструмент, поищите по менюшкам - я точно не помню где, не использовал. А в версиях постарше (т.е. постарее) - расширенный фильтр.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 14.01.2011, 13:05   #3
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

лента "данные", группа "работа с данными", кнопка "удалить дубликаты" (для 2007)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 14.01.2011, 14:59   #4
sasha_prof
Форумчанин
 
Регистрация: 06.01.2010
Сообщений: 292
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
лента "данные", группа "работа с данными", кнопка "удалить дубликаты" (для 2007)
А макросом это реально сделать с условием по соседнему столбцу с датой???
sasha_prof вне форума Ответить с цитированием
Старый 14.01.2011, 15:14   #5
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Макросом легко, поищите по Dictionary или Collection.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 14.01.2011, 15:17   #6
Deltist
Новичок
Джуниор
 
Регистрация: 14.01.2011
Сообщений: 2
По умолчанию

Всем спасибо, кнопку нашел.
Deltist вне форума Ответить с цитированием
Старый 14.01.2011, 15:20   #7
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

еще как реально...
Код:
Sub DelDubl()
    ActiveSheet.Range("$A$1:$A$13").RemoveDuplicates Columns:=1, Header:=xlNo
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 14.01.2011, 15:21   #8
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Цитата:
Сообщение от sasha_prof Посмотреть сообщение
А макросом это реально сделать с условием по соседнему столбцу с датой???
Вот например, перебор А (с второго ряда) и вывод уникальных с количеством рядом:
Код:
Sub NoDupesCount()
Dim Arr(), iArr
Arr = ActiveSheet.Range("A2:A" & ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row).Value
With CreateObject("Scripting.Dictionary")
.CompareMode = vbTextCompare
For Each iArr In Arr
If Trim(iArr) <> "" Then .Item(Trim(iArr)) = .Item(Trim(iArr)) + 1
Next
ActiveSheet.Range("C2").Resize(.Count) = Application.Transpose(.Keys)
ActiveSheet.Range("D2").Resize(.Count) = Application.Transpose(.Items)
End With
End Sub
Но столбец с датой тут не прикручен, это нужно добавить, мне лично пока не понятно, что именно нужно.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 14.01.2011, 15:28   #9
sasha_prof
Форумчанин
 
Регистрация: 06.01.2010
Сообщений: 292
По умолчанию

Цитата:
Сообщение от IgorGO Посмотреть сообщение
еще как реально...
Код:
Sub DelDubl()
    ActiveSheet.Range("$A$1:$A$13").RemoveDuplicates Columns:=1, Header:=xlNo
End Sub
Я в макросах не силен((
А где задавать условие?
sasha_prof вне форума Ответить с цитированием
Старый 14.01.2011, 15:32   #10
sasha_prof
Форумчанин
 
Регистрация: 06.01.2010
Сообщений: 292
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Вот например, перебор А (с второго ряда) и вывод уникальных с количеством рядом:
Код:
Sub NoDupesCount()
Dim Arr(), iArr
Arr = ActiveSheet.Range("A2:A" & ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row).Value
With CreateObject("Scripting.Dictionary")
.CompareMode = vbTextCompare
For Each iArr In Arr
If Trim(iArr) <> "" Then .Item(Trim(iArr)) = .Item(Trim(iArr)) + 1
Next
ActiveSheet.Range("C2").Resize(.Count) = Application.Transpose(.Keys)
ActiveSheet.Range("D2").Resize(.Count) = Application.Transpose(.Items)
End With
End Sub
Но столбец с датой тут не прикручен, это нужно добавить, мне лично пока не понятно, что именно нужно.

Столбец с датой хочу привязать для задания условия - удалять старые или новые записи
sasha_prof вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск дубликатов в массиве. Mister_Originalnos Помощь студентам 0 09.12.2010 20:13
поиск дубликатов файлов(имя, тип, размер). Вывод дубликатов на экран с отображением их пути faraon1792 Помощь студентам 4 19.03.2010 23:46
Поиск дубликатов Студент-снова Microsoft Office Excel 10 16.01.2010 18:57
Создание дубликатов таблиц Sparky SQL, базы данных 4 29.12.2009 16:45
удаление дубликатов и группировка строк Serglen Microsoft Office Excel 2 30.07.2008 15:51