powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / как макросом убрать повторяющиеся строки EXCEL
25 сообщений из 89, страница 1 из 4
как макросом убрать повторяющиеся строки EXCEL
    #33973551
Nosorog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
имею много таблиц EXCEL в каждой одна колонка
все строки повторяются минимум 2 раза например
москва
москва
москва
москва
гжель
гжель
шатура
шатура
черусти
черусти
и тд и тд и тд ...
подскажите макрос который удалит повторяющиеся строки
но по одной оставит.
сортировать строки нельзя это исказит географию трассы
руками чистить строки влом
заранее спасибо
...
Рейтинг: 0 / 0
как макросом убрать повторяющиеся строки EXCEL
    #33973597
vbapro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно без макроса: в новой колонке сделать сравнение соседних строк, например =A2=A1, отфильтровать по TRUE и удалить
...
Рейтинг: 0 / 0
как макросом убрать повторяющиеся строки EXCEL
    #33973707
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Sub DeleteDubls()
Const intDataCol =  1 
Const intMaxRow =  12 
    Dim i%, j%
    Dim strValue1$, strValue2$
    For i =  2  To intMaxRow -  1 
        strValue1 = Trim(Cells(i, intDataCol))
        For j = i +  1  To intMaxRow
            strValue2 = Trim(Cells(j, intDataCol))
            If StrComp(strValue1, strValue2, vbTextCompare) =  0  Then
                Cells(j, intDataCol).Delete shift:=xlUp
            End If
        Next
    Next
End Sub

Здесь intDataCol - столбец по которыму идет сравнение данных, intMaxRow - номер последней строки, если что не понятно "пищи" ;)
...
Рейтинг: 0 / 0
как макросом убрать повторяющиеся строки EXCEL
    #33973882
Nosorog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2orunbek
Большое спасибо !!! код работает !!!
удалились яч. где стоит только одно слово
например : Москва или Гжель
но я конечно дал упрошенный пример в своем первом посте
на самом деле есть ячейки с таким содержимым
Москва М9
Москва ЦСС
Орехово-Зуево
Арзамас-2
Нижний Новгород и тп.
и вот если они повторяются несколько раз
они не удаляются
...
Рейтинг: 0 / 0
как макросом убрать повторяющиеся строки EXCEL
    #33973963
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nosorog2orunbek
Большое спасибо !!! код работает !!!
удалились яч. где стоит только одно слово
например : Москва или Гжель
но я конечно дал упрошенный пример в своем первом посте
на самом деле есть ячейки с таким содержимым
Москва М9
Москва ЦСС
Орехово-Зуево
Арзамас-2
Нижний Новгород и тп.
и вот если они повторяются несколько раз
они не удаляются
Ну если там нужно еще и отдельные слова сравнивать, то сделайте разбивку и потом сравнение, чуть-чуть же осталось попробуйте сами сделать, а то если на готовом, то профессионалом не скоро станете. Мне не жалко, просто хочу чтобы и сами попробовали "обмозговать" проблему
...
Рейтинг: 0 / 0
как макросом убрать повторяющиеся строки EXCEL
    #33974079
Nosorog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2orunbek
отдельные слова сравнивать не надо
надо сравнивать значение ячеек в целом
но может быть и такое
москва цсс южный
москва цсс северный
и вот если они повторяются Ваш код их не трогает
Однако = спасибо еще раз !!!
куда копать хоть укажите
...
Рейтинг: 0 / 0
как макросом убрать повторяющиеся строки EXCEL
    #33974091
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
If StrComp(strValue1, strValue2, vbTextCompare) =  0  Then
      Cells(j, intDataCol).Delete shift:=xlUp
End If

здесь конечно, где сравнение идет
...
Рейтинг: 0 / 0
как макросом убрать повторяющиеся строки EXCEL
    #33974106
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кроме того, уделите внимание способу сравнения:
StrComp(strValue1,strValue2,vbTextCompare)
vbTextCompare - текстовое сравнение
есть еще vbBinaryCompare, vbDataBaseCompare или что-то вроде этого
...
Рейтинг: 0 / 0
как макросом убрать повторяющиеся строки EXCEL
    #33974205
Фотография k-nike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nosorogотдельные слова сравнивать не надо
надо сравнивать значение ячеек в целом
но может быть и такое
москва цсс южный
москва цсс северный
и вот если они повторяются Ваш код их не трогает
Однако = спасибо еще раз !!!
куда копать хоть укажите

Если сравнивать значения ячеек в целом, то код и не должен трогать эти строки!!!
Алгоритм задать трудно для вашего случая. Человек сделает это надежнее. В идеале иметь массив со списком слов по которым сокращать, и уж потом искать эти слова в ячейках и удалять двойные.

Если у вас это не часто повторяющаяся операция, предлагаю вам просто поставить автофильтр на этот столбец и для каждой на ваш взгляд повторяющейся записи проделать следующие действия:
- скопировать ячейку с уникальной записью, например, москва цсс южный
- отфильтровать повторяющиеся записи по повторяющимся названиям, например, москва цсс северный
- вставить скопированную ячейку в отфильтрованный диапазон
- повторить процедуру для других повторяющихся записей, например, для москва цсс западный
...
Рейтинг: 0 / 0
как макросом убрать повторяющиеся строки EXCEL
    #33974453
Nosorog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2k-nike
VBA может сделать такое ???
1. найти все одинаковые строки
2. из всех одинаковых оставить по одной
вроде бы простая задача но я не силен в VBA

и еще
а если мне в ACCESS экспортировать исх. таблицы
может тогда проще будет получить нужный результат ???
...
Рейтинг: 0 / 0
как макросом убрать повторяющиеся строки EXCEL
    #33974668
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Sub DeleteDubls()
    Const intCol =  3 
    Const intRow =  15 
    Dim i%
    Cells(intRow, intCol).CurrentRegion.Sort Key1:=Cells(intRow, intCol), Order1:=xlAscending, Header:=xlGuess, _
            OrderCustom:= 1 , MatchCase:=False, Orientation:=xlTopToBottom
    For i = intRow +  1  To Cells(intRow, intCol).CurrentRegion.Rows.Count + intRow
        If Cells(i, intCol) = "" Then Exit For
        If Cells(i, intCol) = Cells(i, intCol).Offset(- 1 ,  0 ) Then _
            Rows(i).Delete shift:=xlUp: i = i -  1 
    Next
End Sub

где intCol - номер столбца в котором искать совпадения
intRow - номер строки с которой начинать поиск
...
Рейтинг: 0 / 0
как макросом убрать повторяющиеся строки EXCEL
    #33974733
Фотография k-nike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nosorog2k-nike
VBA может сделать такое ???
1. найти все одинаковые строки
2. из всех одинаковых оставить по одной
вроде бы простая задача но я не силен в VBA

и еще
а если мне в ACCESS экспортировать исх. таблицы
может тогда проще будет получить нужный результат ???

1. Что вы подразумеваете под "одинаковыми строками"? Алгоритм по которому определять одинаковая строка или нет вы можете описать?
2. Имхо, без разницы в Excel или Access это делать. Главное, повторюсь, алгоритм по которому определять "одинаковость строк", а остальное вам уже подсказали.
...
Рейтинг: 0 / 0
как макросом убрать повторяющиеся строки EXCEL
    #33974848
Nosorog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2k-nike

поскольку во всех моих таблицах по одной колонке
речь практически идет о сравнении ячеек а не строк
критерий одинаковости простой :

москва
москва
это две одинаковые ячейки (в яч. одно слово)

москва цсс
москва цсс
москва цсс
москва цсс
это четыре одинаковые ячейки (в яч. два слова)

москва цсс северный
москва цсс северный
это две одинаковые ячейки (в яч. три слова)

вопрос : может VBA сравнивать ячейки где 2 или 3 слова ???
...
Рейтинг: 0 / 0
как макросом убрать повторяющиеся строки EXCEL
    #33974900
Фотография k-nike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nosorogвопрос : может VBA сравнивать ячейки где 2 или 3 слова ???
Конечно может.
Я не проверял макросы orunbek'а и vkodor'а, но разве они не так работают?
...
Рейтинг: 0 / 0
как макросом убрать повторяющиеся строки EXCEL
    #33974993
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спецы по ёкселю, подскажите, plz.
...
Рейтинг: 0 / 0
как макросом убрать повторяющиеся строки EXCEL
    #33974996
Nosorog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2k-nike

макрос orunbek(a) обработал правильно только ячейки содержашие одно слово
яч. содержащие 2 слова он не тронул то ест сколько их было в колонке
столько и осталось.
макрос vkodor(a) я еще не проверял у нас как конец недели так запарка ...
однако всем спасибо ... что откликнулись
...
Рейтинг: 0 / 0
как макросом убрать повторяющиеся строки EXCEL
    #33977260
Nosorog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 vkodor
ваш макрос работает но есть одно НО
после удаления излишних строк он сортирует строки по алфавиту
в моей задаче это все дело портит так как это трассы каналов связи
идущих вдоль жд
и если жд станции расставить по алфавиту получается абсурд.
подскажите как убрать сортировку плз ???
...
Рейтинг: 0 / 0
как макросом убрать повторяющиеся строки EXCEL
    #33977667
Фотография orunbek
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чёрт с ним, дайте свой файл, я вам доделаю, но только в течении часа после появления этого сообщения, опосля меня не будет целых 10 дней.
...
Рейтинг: 0 / 0
как макросом убрать повторяющиеся строки EXCEL
    #33978099
Nosorog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в таблице ECXEL всего одна колонка
содержимое ячеек я изменил для простоты понимания задачи
маша
маша
маша
маша
маша
коля
коля
коля
нина
нина
вася
вася
вася
и тд.

надо оставить только уникальные значения
и не сортировать то есть надо получить
маша
коля
нина
вася

заранее спасибо
...
Рейтинг: 0 / 0
как макросом убрать повторяющиеся строки EXCEL
    #33978168
Фотография Ivan33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
/topic/296925&hl=
...
Рейтинг: 0 / 0
как макросом убрать повторяющиеся строки EXCEL
    #33978412
Nosorog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ivan33
спасибо по указанной вами ссылке взял код
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Public Sub DeleteDuplicates()
    Dim rng As Range
    Dim ws As Worksheet
    Dim intI As Integer
    Dim intRows As Integer

    Set ws = ThisWorkbook.Worksheets("Лист1")
    Set rng = ws.UsedRange
      
    intRows = rng.Rows.Count
    intI =  1 
    
    Do While intI < intRows
        If ws.Cells(intI,  1 ) = ws.Cells(intI +  1 ,  1 ) And _
          ws.Cells(intI,  2 ) = ws.Cells(intI +  1 ,  2 ) Then
            ws.Cells(intI,  1 ).EntireRow.Delete shift:=xlShiftUp
            intRows = intRows -  1 
            intI = intI -  1 
        End If
        
        intI = intI +  1 
    Loop
End Sub

все пучком но последняя (нижняя) строчка в таблице
осталась в двух экземплярах
конечно одну из них можно и руками удалить
но если не трудно подскажите что изменить в коде чтобы он обрабатывал все
строки в том числе и последнюю.
...
Рейтинг: 0 / 0
как макросом убрать повторяющиеся строки EXCEL
    #33978423
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nosorog2 vkodor
ваш макрос работает но есть одно НО
после удаления излишних строк он сортирует строки по алфавиту
в моей задаче это все дело портит так как это трассы каналов связи
идущих вдоль жд
и если жд станции расставить по алфавиту получается абсурд.
подскажите как убрать сортировку плз ???
Сортировку убрать нельзя, без сортировки алгоритм должен быть другим.
...
Рейтинг: 0 / 0
как макросом убрать повторяющиеся строки EXCEL
    #33978445
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nosorog2 vkodor
ваш макрос работает но есть одно НО
после удаления излишних строк он сортирует строки по алфавиту
в моей задаче это все дело портит так как это трассы каналов связи
идущих вдоль жд
и если жд станции расставить по алфавиту получается абсурд.
подскажите как убрать сортировку плз ???

Вообще-то, применительно к твоей часной задачи можно
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Sub DeleteDubls()
    Const intCol =  3 
    Const intRow =  15 
    Dim i%
    For i = intRow +  1  To Cells(intRow, intCol).CurrentRegion.Rows.Count + intRow
        If Cells(i, intCol) = "" Then Exit For
        If Cells(i, intCol) = Cells(i, intCol).Offset(- 1 ,  0 ) Then _
            Rows(i).Delete shift:=xlUp: i = i -  1 
    Next
End Sub
...
Рейтинг: 0 / 0
как макросом убрать повторяющиеся строки EXCEL
    #33978631
Nosorog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 vkodor

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Sub DeleteDubls()
    Const intCol =  3 
    Const intRow =  15 
    Dim i%
    For i = intRow +  1  To Cells(intRow, intCol).CurrentRegion.Rows.Count + intRow
        If Cells(i, intCol) = "" Then Exit For
        If Cells(i, intCol) = Cells(i, intCol).Offset(- 1 ,  0 ) Then _
            Rows(i).Delete shift:=xlUp: i = i -  1 
    Next
End Sub

макрос не удаляет дубли хотя и сообщений об ошибке не дает
исходная таблица Excel осталась без изменений
хотя я и поставил
intCol = 1
intRow = 19
...
Рейтинг: 0 / 0
как макросом убрать повторяющиеся строки EXCEL
    #33978735
KL (XL)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А так?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Sub test()
    Dim Start As Long, Finish As Long, col As Long
    Start =  19 : col =  1 
    Application.ScreenUpdating = False
    With ActiveSheet
        Finish = .Cells(.Rows.Count, col).End(xlUp).Row
        Set rng = .Range(.Cells(Start, col), .Cells(Finish, col))
        For i = Finish To Start Step - 1 
            If Application.CountIf(rng, Cells(i, col)) >  1  Then Rows(i).Delete
        Next i
    End With
    Application.ScreenUpdating = True
End Sub

KL
[MVP - Microsoft Excel]
...
Рейтинг: 0 / 0
25 сообщений из 89, страница 1 из 4
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / как макросом убрать повторяющиеся строки EXCEL
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]