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

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

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

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

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

Результаты опроса: помощь в удалении повторов в эксель
Счетесли не устраивает 1 100.00%
удалить повторы тоже, т.к. 1 повтор нужно оставить, 1 100.00%
Опрос с выбором нескольких вариантов ответа. Голосовавшие: 1. Вы ещё не голосовали в этом опросе

Ответ
 
Опции темы Поиск в этой теме
Старый 15.01.2014, 17:49   #1
VladMar
Пользователь
 
Регистрация: 14.01.2014
Сообщений: 56
По умолчанию Удалить лишние дублирующие строки

Добрый день, коллеги, прошу оказать помощь в решении вопроса. Задача удалить все повторы, но один оставить, например есть база данных с несколькими 10 тыс. записей, из них может повторяться некоторые записи по 2 и более раз, некоторые повторы бывают более 10 раз, так вот нужно в итоге получить базу данных где повторов не будет, а все записи по строкам будут записаны только один раз, в т.ч. и те что повторялись 2 и более раз (из таких повторов нужно оставить только один раз). Эту проблему нужно реализовать в экселе и желательно 2003, СПАСИБО.
VladMar вне форума Ответить с цитированием
Старый 15.01.2014, 18:17   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

И чем не устраивает СЧЁТЕСЛИ()?
Код:
=COUNTIF($A$1:A1,A1)
В общем, мне на опрос ответить нечего
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 15.01.2014 в 18:19.
Hugo121 вне форума Ответить с цитированием
Старый 15.01.2014, 18:18   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Если есть уникальный идентификатор id

Код:
DELETE FROM MyTable WHERE id NOT IN (SELECT MAX(id) FROM MyTable GROUP BY [поле1],...,[полеN])
[поле1],...,[полеN] - поля, по которым проверяются повторы, id не входит сюда. Зачем опрос?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 15.01.2014, 18:28   #4
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Думаю в Экселе это не сработает.
Но можно подключить или импортировать данные в Access, ну и уж там...
А затем выгрузить назад.
Хотя тогда можно просто запросом отобрать нужное и выгрузить его.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 15.01.2014, 19:09   #5
VladMar
Пользователь
 
Регистрация: 14.01.2014
Сообщений: 56
По умолчанию

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
И чем не устраивает СЧЁТЕСЛИ()?
Код:
=COUNTIF($A$1:A1,A1)
В общем, мне на опрос ответить нечего
Возможно я не точно сформулировал свою цель конечную, вся фишка в том, что нужно отсортировать данные и оставить все повторения, но только по одному разу, а то что по два и более раза повторяется убрать, например есть записи "Иванов И.И. - слесарь" (три повторения), так вот два повтора убрать из базы данных, а одну запись ("Иванов И.И. - слесарь") нужно оставить. В итоге получается список с уникальными записями без дубляжа это нужно в Экселе 2003, спасибо.

Цитата:
Сообщение от Аватар Посмотреть сообщение
Если есть уникальный идентификатор id

Код:
DELETE FROM MyTable WHERE id NOT IN (SELECT MAX(id) FROM MyTable GROUP BY [поле1],...,[полеN])
[поле1],...,[полеN] - поля, по которым проверяются повторы, id не входит сюда. Зачем опрос?
Возможно я не точно сформулировал свою цель конечную, вся фишка в том, что нужно отсортировать данные и оставить все повторения, но только по одному разу, а то что по два и более раза повторяется убрать, например есть записи "Иванов И.И. - слесарь" (три повторения), так вот два повтора убрать из базы данных, а одну запись ("Иванов И.И. - слесарь") нужно оставить. В итоге получается список с уникальными записями без дубляжа это нужно в Экселе 2003, спасибо.

Цитата:
Сообщение от Hugo121 Посмотреть сообщение
Думаю в Экселе это не сработает.
Но можно подключить или импортировать данные в Access, ну и уж там...
А затем выгрузить назад.
Хотя тогда можно просто запросом отобрать нужное и выгрузить его.
Дело в том что это в книге эксель и будет потом связано с другими листами нужно в экселе, с Аксессом не пробовал, хотя это тоже мысль.

Последний раз редактировалось Stilet; 15.01.2014 в 19:23.
VladMar вне форума Ответить с цитированием
Старый 15.01.2014, 19:18   #6
gling
Форумчанин
 
Регистрация: 23.01.2010
Сообщений: 261
По умолчанию

Вас и спрашивают
Цитата:
И чем не устраивает СЧЁТЕСЛИ()?
вставить формулу
Код:
=COUNTIF($A$1:A1,A1)
или
Код:
=СЧЁТЕСЛИ($A$1:A1,A1)
фильтром выделяете >1 и удаляете, остаются только уникальные.
gling вне форума Ответить с цитированием
Старый 15.01.2014, 19:29   #7
VladMar
Пользователь
 
Регистрация: 14.01.2014
Сообщений: 56
По умолчанию

Цитата:
Сообщение от gling Посмотреть сообщение
Вас и спрашивают

вставить формулу
Код:
=COUNTIF($A$1:A1,A1)
или
Код:
=СЧЁТЕСЛИ($A$1:A1,A1)
фильтром выделяете >1 и удаляете, остаются только уникальные.
Я так сразу и сделал, но проблема что их очень много >1 и вручную удалять нужно тысячи записей, м.б. макросом как-то удалить задвоеные, но 1 из них все же не удалять, например было:
Иванов
Иванов
Иванов
Петров
Сидоров
Галкин
Галкин
Пугачева
А должно остаться:
Иванов
Петров
Сидоров
Галкин
Пугачева
Спасибо!
VladMar вне форума Ответить с цитированием
Старый 15.01.2014, 20:03   #8
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

Пример приложите,решение быстрее получите.
Строк на 100 с вашего файла.
Образец создавать лень.
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 15.01.2014, 20:30   #9
gling
Форумчанин
 
Регистрация: 23.01.2010
Сообщений: 261
По умолчанию

Цитата:
и вручную удалять нужно тысячи записей,
после того как спрячатся значения с 1 останутся те которые можно удалить выделев все нажмете удалить строки и останутся только с 1.Попробуйте.
gling вне форума Ответить с цитированием
Старый 15.01.2014, 21:37   #10
Protuberanez
Пользователь
 
Регистрация: 15.03.2011
Сообщений: 45
По умолчанию

1 отсортируй все записи по возрастанию что бы все фамилии шли по порядку от А до Я.
2 напиши в соседней свободной колонке формулу =если(А1=А2;1;0) если у тебя А это колонка с фамилиями конечно. Иначе вместо А ставь нужную колонку.
3 выдели строку с заголовком и нажми "Данные\фильтр\автофильтр"
4 в столбце где прописана формула выбери значение фильтра равное 1.
5 Удали(не с помощью кнопки "Delete ") все эти записи и будет тебе счастье.

Последний раз редактировалось Protuberanez; 15.01.2014 в 21:40.
Protuberanez вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удалить дублирующие записи helpkz SQL, базы данных 8 11.04.2013 13:28
удалить лишние пробелы со строки так чтобы между символами осталось по одному пробелу delphi MASIK Общие вопросы Delphi 7 22.12.2010 18:23
Как удалить лишние пробелы из строки? MyLastHit Общие вопросы Delphi 26 11.08.2010 21:44
Удалить лишние пустые строки vfv Microsoft Office Excel 2 09.03.2010 11:05
удалить лишние пробелы со строки так чтобы между символами осталось по одному пробелу c++ DimaG Общие вопросы C/C++ 1 01.11.2007 21:50