5 / 4 / 1
Регистрация: 03.04.2018
Сообщений: 113
|
|||||||||||
1 | |||||||||||
Удаление дубликатов строк из диапазона, состоящего из 18-ти колонок05.12.2020, 16:06. Показов 2520. Ответов 16
Доброго времени суток всем!
Имеется книга Excel с одним листом На данном листе находится таблица, состоящая из 18-ти колонок и нескольких тысяч строк (в файле оставлю только малую часть, чтобы показать, о чем я говорю). В файле имеется огромное множество дубликатов, нужно их удалить. Имеется два варианта, оба из которых не работают. Задумка такая: 1-й вариант: перебираю в цикле i каждый из столбцов по очереди двигаясь вниз, пока не дойду до конца строчек и в итоге удаляю. Скажу сразу, что этот вариант построен на немного измененном моем коде, поэтому, хотя и я прочитал про UBound - я всё равно не ощущаю себя уверенно в этом коде. Тут используется два цикла, потому что я подумал, что так будет правильней сравнивать строку i и строку i+1. 2-й вариант: Решил сделать два цикла - i и Z, и чтоб они шли параллельно друг другу, также перебирали каждый столбец, но уже не i и i+1 (это мне кажется плохая задумка, потому что тут он вроде как перебирает только две соседние строки). Я думаю как-нибудь зациклить эти 18 условий для каждого столбца, чтоб был цикл и переменная от 2 до 19 (для каждого столбца) или вообще переделать их в сравнение не ячеек Cells, а в сравнение строчек Rows. 1-й вариант:
0
|
05.12.2020, 16:06 | |
Ответы с готовыми решениями:
16
Удаление дубликатов по всем колонкам и по каждой отдельно с возможностью выбора диапазона Удаление дубликатов строк Удаление дубликатов строк Разные варианты описания диапазона колонок и строк в Excel? |
2724 / 1701 / 776
Регистрация: 23.03.2015
Сообщений: 5,388
|
|
05.12.2020, 16:20 | 2 |
serviktor,
Напишите конкретное задание. Добавлено через 25 секунд Что вы хотите?
0
|
5 / 4 / 1
Регистрация: 03.04.2018
Сообщений: 113
|
|
05.12.2020, 18:55 [ТС] | 4 |
Удалить дубликаты, если имеется некоторое количество одинаковых строк (с диапазоном со второго по 19-й столбец, то оставить только одну такую строку, а ее копии удалить, и так со всеми строчками.
0
|
3218 / 967 / 223
Регистрация: 29.05.2010
Сообщений: 2,086
|
||||||
05.12.2020, 18:59 | 5 | |||||
Как вариант на словарях:
1
|
5 / 4 / 1
Регистрация: 03.04.2018
Сообщений: 113
|
||||||
05.12.2020, 19:11 [ТС] | 6 | |||||
Не потребуется, есть у меня одна идея, но не знаю как реализовать. В строке 1 находится шапка, то есть именно по ней можно определить то, сколько столбцов заполнено. Думаю, можно использовать метод наподобие Cells(Rows.Count, 2).End(xlUp).Row, только чтоб не количество заполненных строк считал, а количество столбцов, и занести это в переменную. Но этот вариант не обязательно реализовывать, да и у меня не получается его реализовать, это просто как идея, поэтому можно явно указать 18 колонок.
Добавлено через 4 минуты Выдает ошибку на строчке
0
|
5 / 4 / 1
Регистрация: 03.04.2018
Сообщений: 113
|
|
05.12.2020, 19:22 [ТС] | 8 |
0
|
5 / 4 / 1
Регистрация: 03.04.2018
Сообщений: 113
|
|
05.12.2020, 19:24 [ТС] | 10 |
0
|
2724 / 1701 / 776
Регистрация: 23.03.2015
Сообщений: 5,388
|
||||||
05.12.2020, 19:39 | 12 | |||||
Сообщение было отмечено serviktor как решение
Решение
serviktor,
Еще вариант ( в принципе такой же как и наверху , только в массивах)... отработка на 100000 строк меньше 2 секунд Кликните здесь для просмотра всего текста
Файл приложен,нажатие кнопки МММ
1
|
5 / 4 / 1
Регистрация: 03.04.2018
Сообщений: 113
|
|
05.12.2020, 19:48 [ТС] | 13 |
Отличается только тем, что у меня не 15.0, а 16.0, а так всё аналогично, галочки стоят
0
|
Часто онлайн
864 / 579 / 263
Регистрация: 09.01.2017
Сообщений: 1,951
|
|
05.12.2020, 19:50 | 14 |
0
|
3218 / 967 / 223
Регистрация: 29.05.2010
Сообщений: 2,086
|
||||||
05.12.2020, 19:51 | 15 | |||||
Сообщение было отмечено serviktor как решение
Решение
Проверил в 2013 -работает.
Подправил ошибку по количеству стообцов
1
|
5 / 4 / 1
Регистрация: 03.04.2018
Сообщений: 113
|
|
05.12.2020, 20:16 [ТС] | 16 |
toiai, Narimanych, большое спасибо за помощь, возможно ошибка была из-за версии офиса, или из-за Mac оси, на винде офис всё удачно выполнил. Теперь знаю, в каком направлении двигаться и что подтянуть, чтобы решать подобные задачи)
0
|
2724 / 1701 / 776
Регистрация: 23.03.2015
Сообщений: 5,388
|
|
05.12.2020, 20:17 | 17 |
serviktor,
Велкоме
0
|
05.12.2020, 20:17 | |
05.12.2020, 20:17 | |
Помогаю со студенческими работами здесь
17
Удаление дубликатов строк из таблицы Удаление строк - полных дубликатов Word Удаление смежных дубликатов строк Удаление строк и колонок из матрицы Удаление диапазона строк в таблице при наличии пустых значений в определенных столбцах Удаление дубликатов + ассинхронное удаление из другой таблицы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |