13 / 16 / 5
Регистрация: 26.03.2013
Сообщений: 142
|
|
1 | |
Сортировка, сравнение, объединение, удаление14.03.2019, 10:49. Показов 1608. Ответов 15
Метки нет (Все метки)
Здравствуйте.
Дана таблица из 9 столбцов 1. Сортируем по 5 столбцу 2. Сравниваем ячейки 5 столбца, если две ячейки совпадают 3. то объединяем ячейки 3 столбца через "," 4. удаляем одну строку, чтобы не было дублей В первую очередь прошу ссылки "куда читать" для экономии времени. Алгоритм мне понятен, но синтаксиса не знаю вообще. Вчера начал изучать VBA. Надо к понедельнику разобраться, как решать такие задачи, и где есть читабельные справочник/кукбук. Добавлено через 2 минуты да, все ячейки текстовые Добавлено через 8 минут 1 ..... a2 ..... qwert ..... ..... ..... ..... 2 ..... b5 ..... qwert ..... ..... ..... ..... 3 ..... j2 ..... zwqw ..... ..... ..... ..... получаем 1 ..... a2, b5 ..... qwert ..... ..... ..... ..... 3 ..... j2 ..... zwqw ..... ..... ..... ..... Добавлено через 9 минут еще цикл получаем с первой строки до последней минус один - количество строк произвольно
0
|
14.03.2019, 10:49 | |
Ответы с готовыми решениями:
15
Преобразовать заданные строки, согласно условию (сортировка и сравнение строк, вставка/удаление символов) Описать класс «множество» (добавление и удаление элемента, пересечение, объединение и удаление множеств ) Сравнение и объединение исправлений Объединение и последующее сравнение 2 таблиц |
15145 / 6418 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
|
|
14.03.2019, 10:54 | 2 |
alexcrz, обычно обратную задачу решают - разделить ячейки одного столбца с дублированием информации из других столбцов. Недавний пример с другого форума.
1
|
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
|
|
14.03.2019, 11:06 | 3 |
- т.к. Вы новичёк, сразу подскажу что для этого правильнее циклом идти снизу вверх.
Если строки удалять не сразу все, а по одной.
1
|
13 / 16 / 5
Регистрация: 26.03.2013
Сообщений: 142
|
|
14.03.2019, 11:23 [ТС] | 4 |
в чём разница?
по одной, так как надо значение 3-ого столбца из удаляемой строки забирать. Забрали - удалили. Может 3-10 строк одинаковых. Получим 1 ..... a2, b5, a3, a6, b99, c7, c4 ..... qwert ..... ..... ..... ..... кстати, надо добавлять повторную проверку изменённой строки со следующей после удалённой! Добавлено через 5 минут Hugo121, я понял, спасибо!
0
|
3 / 2 / 1
Регистрация: 28.01.2019
Сообщений: 15
|
||||||
14.03.2019, 16:19 | 5 | |||||
Немного не в тему, но всё-же.
Код моего макроса, сканирует ячейки столбца на наличие номеров телефонов Пример исходной страницы: +7-900-000-00-01 000001 +7-900-000-00-02 000002 +7-900-000-00-03 000003 +7-900-000-00-04 000004 +7-900-000-00-02 000005 +7-900-000-00-02 000006 После этого записывает в массив в таком виде: +7-900-000-00-01 000001 +7-900-000-00-02 000001, 000005, 000006 +7-900-000-00-03 000001 +7-900-000-00-04 000001 По идее похоже на твою задачу, позже попробую переделать под твои условия Кликните здесь для просмотра всего текста
0
|
13 / 16 / 5
Регистрация: 26.03.2013
Сообщений: 142
|
|
14.03.2019, 16:35 [ТС] | 6 |
мне, на самом деле, всё в тему, что касается 4 пунктов + циклы. Спасибо.
наютубил удаление дубликатов пачкой + поиск начала и конца таблицы для цикла... очень долго ищутся банальные вещи. сходу найти точно такую же задачу не получилось, по кускам собирается, включая вашу помощь.
0
|
3 / 2 / 1
Регистрация: 28.01.2019
Сообщений: 15
|
|||||||||||
15.03.2019, 09:14 | 7 | ||||||||||
Я сам пока не особо в VBA, но попробуй такой код на каком нибудь подопытном файле.
Извиняюсь, требуется немного переделать (значения в ячейки записывает, вот только порядок неверный). Вот новый:
1
|
13 / 16 / 5
Регистрация: 26.03.2013
Сообщений: 142
|
|||||||||||
15.03.2019, 10:50 [ТС] | 8 | ||||||||||
я цикл сделал так
Или как по-другому определить диапазон ячеек? Добавлено через 2 минуты Ухин Николай, по подсказке убрал "Лист1" из ActiveWorkbook.Worksheets(1). Спасибо!
0
|
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
|
||||||
15.03.2019, 11:08 | 9 | |||||
1
|
3 / 2 / 1
Регистрация: 28.01.2019
Сообщений: 15
|
||||||
15.03.2019, 14:48 | 10 | |||||
А твой поиск работает когда между двумя одинаковыми значениями строчка с другим будет?
Он вроде же сравнивает только соседние строки? Добавлено через 29 минут Кстати по поводу цикла. Есть возможность перебирать в обратном порядке, от большего к меньшему:
0
|
13 / 16 / 5
Регистрация: 26.03.2013
Сообщений: 142
|
|
15.03.2019, 15:51 [ТС] | 11 |
вроде да...
будут разные значения - перейдёт на следующую пару LastRow и LastRow - 1 Будут одинаковые - склеит значения двух ячеек и удалит строку, перейдет на следующую пару да, с синтаксисом борюсь - спасибо Добавлено через 8 минут значения в столбце я отсортировал... пока криво с магическими константами, сегодня доделаю далее увидел окна на ютубе, куда пользователь может вводить значения перед обработкой буду мучить ввод "столбцов сортировки", "столбцов объединённых данных", "строки начала таблицы" на этой основе можно будет проводить модернизацию. Пока без понятия, что за разнообразие выгрузки мне предстоит ставить на конвейер. Хотя макроса с циклом мне сейчас выше крыше под конкретную задачу. Остальное для самообразования.
0
|
3 / 2 / 1
Регистрация: 28.01.2019
Сообщений: 15
|
|
15.03.2019, 16:18 | 12 |
Попробуй, вроде норм работает, даже сохраняет значения в 3 столбце в порядке очередности
0
|
6922 / 2832 / 543
Регистрация: 19.10.2012
Сообщений: 8,645
|
|
15.03.2019, 17:44 | 13 |
Для работы и самообразования нужно изучить массивы и словари. И коллекции.
0
|
13 / 16 / 5
Регистрация: 26.03.2013
Сообщений: 142
|
|
16.03.2019, 13:57 [ТС] | 14 |
мысль о сортировке скопилась
a1 a10 a2 a3 тут уже моё невежество в Excel. При этом я понимаю, что может быть и такое aaaaa1 aaaaa10 aaaaa2 куда посмотреть? я вопрос не могу Гуглу сформулировать. Логически вижу деление на текстовую и числовую часть + сортировка пузырьком Добавлено через 7 минут у меня и склеенные ячейки идут без предварительной сортировки c9, c10, c8, c7 отсортирую до цикла, - будет c7, c8, c9, c10 Добавлено через 6 минут думаю надо сперва 3 столбец сортировать, затем 5, затем уже склеивать 3 интересен алгоритм сортировки рекодером. При сортировке 5 столбца, 3 столбец перемешан не будет? пойду читать мануал к параметрам функции
0
|
13 / 16 / 5
Регистрация: 26.03.2013
Сообщений: 142
|
||||||
18.03.2019, 13:24 [ТС] | 15 | |||||
Нормально в практике открывать файл Excel в котором сразу появляется форма?
Смысл в чём. Пользователь кликает на файл нужной обработки и далее ему не надо знать про макросы... он просто расставляет в окне галки с цифрами, и получает результат. Как грамотно оформить с минимумом проблем безопасности? Excel точно будет орать, что все сейчас умрут, если открыть и запустить макрос. Добавлено через 4 минуты или не через форму, а кнопкой макрос запускать... где, собственно, форма будет? Добавлено через 5 минут подозреваю, что лента и панель быстрого запуска должна настраиваться у каждого пользователя... не вариант Добавлено через 1 час 14 минут Уже замучился. Как отсортировать сперва по столбцу B, затем D?
0
|
13 / 16 / 5
Регистрация: 26.03.2013
Сообщений: 142
|
||||||
21.03.2019, 14:52 [ТС] | 16 | |||||
С тестированием пока заминка. На 3 выгрузках работает.
0
|
21.03.2019, 14:52 | |
21.03.2019, 14:52 | |
Помогаю со студенческими работами здесь
16
Сравнение и объединение строк в запросе Сравнение/объединение или замена Географические координаты, сравнение объединение данных Объединение столбцов при импорте плюс сравнение с массивом Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |