Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Поиск и удаление одинаковых строк таблицы по 3 столбцам - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Поиск и удаление одинаковых строк таблицы по 3 столбцам
NICK31 Дата: Понедельник, 09.09.2013, 16:34 | Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 112
Репутация: 0 ±
Замечаний: 0% ±

добрый день уважаемые форумчане! вопрос такой, есть таблица, на N количество строк, как сделать макрос, чтобы он удалял одинаковые строки по совпадающим 3 столбцам D, H, I ! пример во вложении, прикрепил маленькую таблицу, но она может быть и больше, желтым выделены те строки, которые одинаковы, оставляем только ту, которая первая, все повторные удаляем! если хоть одно условие не выполняется, то строчки остаются на месте! кнопка расположена на 2 листе, код написан был на другую таблицу, но поменять как сообразить не могу
К сообщению приложен файл: post_251497.xls (52.0 Kb)


Сообщение отредактировал NICK31 - Понедельник, 09.09.2013, 16:35
 
Ответить
Сообщениедобрый день уважаемые форумчане! вопрос такой, есть таблица, на N количество строк, как сделать макрос, чтобы он удалял одинаковые строки по совпадающим 3 столбцам D, H, I ! пример во вложении, прикрепил маленькую таблицу, но она может быть и больше, желтым выделены те строки, которые одинаковы, оставляем только ту, которая первая, все повторные удаляем! если хоть одно условие не выполняется, то строчки остаются на месте! кнопка расположена на 2 листе, код написан был на другую таблицу, но поменять как сообразить не могу

Автор - NICK31
Дата добавления - 09.09.2013 в 16:34
RAN Дата: Понедельник, 09.09.2013, 21:15 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
:'(
[vba]
Код
Sub qq()
     Dim i&, j&, lr&
     Application.ScreenUpdating = False
     lr = Range("A1").CurrentRegion.Rows.Count
     For i = 3 To lr
         For j = lr To i + 1 Step -1
             If Len(Cells(i, 1)) Then
                 If Cells(i, "D") = Cells(j, "D") Then
                     If Cells(i, "H") = Cells(j, "H") Then
                         If Cells(i, "I") = Cells(j, "I") Then
                             Rows(j).Delete
                         End If
                     End If
                 End If
             Else: Exit Sub
             End If
         Next j
     Next i
     Application.ScreenUpdating = True
End Sub
[/vba]
К сообщению приложен файл: 3340572.xls (72.5 Kb)


Быть или не быть, вот в чем загвоздка!
 
Ответить
Сообщение:'(
[vba]
Код
Sub qq()
     Dim i&, j&, lr&
     Application.ScreenUpdating = False
     lr = Range("A1").CurrentRegion.Rows.Count
     For i = 3 To lr
         For j = lr To i + 1 Step -1
             If Len(Cells(i, 1)) Then
                 If Cells(i, "D") = Cells(j, "D") Then
                     If Cells(i, "H") = Cells(j, "H") Then
                         If Cells(i, "I") = Cells(j, "I") Then
                             Rows(j).Delete
                         End If
                     End If
                 End If
             Else: Exit Sub
             End If
         Next j
     Next i
     Application.ScreenUpdating = True
End Sub
[/vba]

Автор - RAN
Дата добавления - 09.09.2013 в 21:15
pioneer_90 Дата: Среда, 29.04.2015, 22:23 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Друг, а не подскажешь как прописать код, чтоб делал тоже самое но удалял не более одной одинаковой строки. а лучше чтоб не удалял, а ставил + в этой строке.
 
Ответить
СообщениеДруг, а не подскажешь как прописать код, чтоб делал тоже самое но удалял не более одной одинаковой строки. а лучше чтоб не удалял, а ставил + в этой строке.

Автор - pioneer_90
Дата добавления - 29.04.2015 в 22:23
cresh12 Дата: Среда, 07.10.2015, 08:45 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 30
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
RAN, Добрый день! Подскажите пожалуйста, как можно поменять ваш код чтобы добавить большое количество столбцов для сравнения, например диапазон А:АА, можно ли как то заменить конструкцию?)
[vba]
Код

If Cells(i, "D") = Cells(j, "D") Then
                     If Cells(i, "H") = Cells(j, "H") Then
                         If Cells(i, "I") = Cells(j, "I") Then
                             Rows(j).Delete
                         End If
                     End If
                 End If
[/vba]
 
Ответить
СообщениеRAN, Добрый день! Подскажите пожалуйста, как можно поменять ваш код чтобы добавить большое количество столбцов для сравнения, например диапазон А:АА, можно ли как то заменить конструкцию?)
[vba]
Код

If Cells(i, "D") = Cells(j, "D") Then
                     If Cells(i, "H") = Cells(j, "H") Then
                         If Cells(i, "I") = Cells(j, "I") Then
                             Rows(j).Delete
                         End If
                     End If
                 End If
[/vba]

Автор - cresh12
Дата добавления - 07.10.2015 в 08:45
RAN Дата: Среда, 07.10.2015, 09:56 | Сообщение № 5
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Под "например" макросы не пишутся.
В лоб - добавляйте проверки
[vba]
Код
If Cells(i, "AA") = Cells(j, "AA") Then
[/vba]


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеПод "например" макросы не пишутся.
В лоб - добавляйте проверки
[vba]
Код
If Cells(i, "AA") = Cells(j, "AA") Then
[/vba]

Автор - RAN
Дата добавления - 07.10.2015 в 09:56
cresh12 Дата: Среда, 07.10.2015, 10:16 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 30
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
RAN, Так, вот диапазон A:AA, это получается 27 If'ов, может есть вариант сократить запись?
 
Ответить
СообщениеRAN, Так, вот диапазон A:AA, это получается 27 If'ов, может есть вариант сократить запись?

Автор - cresh12
Дата добавления - 07.10.2015 в 10:16
Manyasha Дата: Среда, 07.10.2015, 10:33 | Сообщение № 7
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 899 ±
Замечаний: 0% ±

Excel 2010, 2016
cresh12, можно, например, слепить i-ю строчку в одну, с помощью функции Join или оператора &, и сравнивать полученные строки.

Если нужны более подробные объяснения или другие варианты решения, создавайте свою тему!


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеcresh12, можно, например, слепить i-ю строчку в одну, с помощью функции Join или оператора &, и сравнивать полученные строки.

Если нужны более подробные объяснения или другие варианты решения, создавайте свою тему!

Автор - Manyasha
Дата добавления - 07.10.2015 в 10:33
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!