2 / 1 / 1
Регистрация: 25.05.2013
Сообщений: 216
|
|
1 | |
Поиск совпадений в 2х столбцах и добавление пустой строки25.05.2013, 23:15. Показов 5099. Ответов 47
Метки нет (Все метки)
Здравствуйте!
Имеется таблица, состоящая из 4х столбцов(A,B,C,D). Данные в столбцах время от времени повторяются (отдельно в C И отдельно в D). Задача отследить повторения, добавить после повторения пустую строку. И сделать нумерацию столбца B. Пример во вложении. Буду очень благодарен!
0
|
25.05.2013, 23:15 | |
Ответы с готовыми решениями:
47
Поиск совпадений и действия в зависимости от наличия совпадений Проверка совпадений в двух столбцах Поиск пустой ячейки в столбце и вставка строки над ней Добавление пустой строки в StringGrid |
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
|
|
26.05.2013, 01:03 | 2 |
Здрасьте. Есть такое, что не понимаю. Идет речь отдельно про данные в ст.С и отдельно в ст.D? Или про комбинацию C и D? Если первое - тогда (в случае когда разница по С и по D cовпадает в одной строке) вставляется одна строка, или две? Если первое - заливка по диапазону C : D, или только ячейки? Уточните. Если кто-то другой не сделает сегодня, завтра помогу, там не сложно. Сегодня от своего голова дымит.
0
|
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,518
|
||||||
26.05.2013, 09:32 | 3 | |||||
Виктор83, для работы кода нужно подключить библиотеку:
"Tools" - "References..." - "Microsoft Scripting Runtime". Код
1
|
2 / 1 / 1
Регистрация: 25.05.2013
Сообщений: 216
|
|
26.05.2013, 10:18 [ТС] | 4 |
Igor_Tr, При движении по столбцу D(или С) данные совпадают. Желтым цветом пометил места совпадений.
Скрипт, макрос работает, но есть два но. 1. Нумерация в столбце B начинается не с 1. 2. Если данные в столбце C(D) ранее встречались, то получается вот что. Может сделать еще привязку по столбцу A? 13_04_0101001_3756 2 1342077.91000000000 390448.51000000000 13_04_0101001_3756 3 1342077.16394000000 390450.56108800000 13_04_0101001_3756 4 1342092.83600000000 390470.58060000000 13_04_0101001_3756 5 1342106.78100000000 390463.72890000000 13_04_0101001_3756 6 1342101.81560000000 390443.31205800000 13_04_0101001_3756 7 1342088.62000000000 390448.45000000000 13_04_0101001_3756 1 1342077.91000000000 390448.51000000000 13_04_0101001_3759 2 1341620.70317000000 390161.74757100000 13_04_0101001_3759 3 1341616.72130000000 390154.43658000000 13_04_0101001_3759 4 1341616.49000000000 390155.73000000000 13_04_0101001_3759 1 1341620.70317000000 390161.74757100000 13_04_0101001_3759 1 1341694.00000000000 390214.31000000000 13_04_0101001_3759 1 1341721.13331000000 390200.17819200000
0
|
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,518
|
|
26.05.2013, 10:21 | 5 |
Виктор83, в коде из сообщения #3 есть комментарии - подкорректируйте код под свои нужды.
0
|
2 / 1 / 1
Регистрация: 25.05.2013
Сообщений: 216
|
|
26.05.2013, 10:28 [ТС] | 6 |
Прикрепляю расширенную таблицу
0
|
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
|
||||||
26.05.2013, 10:48 | 7 | |||||
Сделал при помощи словаря. Но нужно указать библиотеку (указано в сообщении "Скрипт" - я всегда забываю это уточнить ) Попробуйте, я пока посмотрю Ваш новый файл.
0
|
2 / 1 / 1
Регистрация: 25.05.2013
Сообщений: 216
|
|
26.05.2013, 10:56 [ТС] | 8 |
Скрипт, зачем выделение цветом? Не надо)
Нумерация сейчас не с 1.
0
|
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,518
|
||||||
26.05.2013, 10:58 | 9 | |||||
Виктор83, да, код из сообщения #3 и в книге из сообщения #1 неправильно делал порядковую нумерацию (я не заметил).
Вот другой код. Код написан для книги из сообщения #1. Код
0
|
2 / 1 / 1
Регистрация: 25.05.2013
Сообщений: 216
|
|
26.05.2013, 10:59 [ТС] | 10 |
Извините, Igor_Tr. Надо как-то привязать еще и столбец А.
0
|
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
|
|
26.05.2013, 11:05 | 12 |
Что имеется в виду? Отследить дубликаты по ст.А ?
0
|
2 / 1 / 1
Регистрация: 25.05.2013
Сообщений: 216
|
|
26.05.2013, 11:13 [ТС] | 13 |
Что имеется в виду? Отследить дубликаты по ст.А ?
Столбец А- учетный номер участка; Столбец C,D - это координаты участка. Участки могут друг с другом соприкасаться, в результате в местах соприкосновений одинаковые координаты. Задача внутри участка (в столбце А одинаковые номера) по столбцам C и D отследить повторение координат, если они повторяются, то добавить пустую строку после повторяющейся строки. И сделать нумерацию в пределах повторения.
0
|
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
|
|
26.05.2013, 11:23 | 14 |
То-есть, в столбце А - это как-бы группы. Там повторы не отслеживать. Только в пределах группы по C и D. Так? Сортировать нужно по А? Или в разбросе? А нумерация? Там есть номера 0. Почему?
0
|
2 / 1 / 1
Регистрация: 25.05.2013
Сообщений: 216
|
|
26.05.2013, 11:29 [ТС] | 15 |
В столбце В это условные номера, они не нужны. Столбец А - это группы, правильно. Столбец А уже отсортирован. Повторы можно отслеживать по столбцу С, можно по D, можно по C и D (там где повторы они совпадают). Лучше, наверно, по C и D.
0
|
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
|
|
26.05.2013, 11:29 | 16 |
Я себе представляю так, приблизительно. Создам коллекцию диапазонов (критерий по А). Потом обработаю каждый по коду, который уже Вам написал. Это не проблема. Но нумеровать как? От 0 или 1? И у каждой группы свой номер, так?
0
|
2 / 1 / 1
Регистрация: 25.05.2013
Сообщений: 216
|
|
26.05.2013, 11:32 [ТС] | 17 |
Нумеровать с 1... и закончить 1 в пределах диапазона повторений
Добавлено через 52 секунды Пример. 13_04_0101001_2012 1 1341859.04357000000 390599.35767000000 13_04_0101001_2012 2 1341842.29835000000 390568.61225200000 13_04_0101001_2012 3 1341835.70000000000 390572.52000000000 13_04_0101001_2012 4 1341852.33000000000 390603.33000000000 13_04_0101001_2012 1 1341859.04357000000 390599.35767000000 13_04_0101001_2012 1 1341808.06950000000 390505.76562500000 13_04_0101001_2012 2 1341796.90000000000 390511.63000000000 13_04_0101001_2012 3 1341813.19000000000 390542.80000000000 13_04_0101001_2012 4 1341824.87502000000 390536.62176600000 13_04_0101001_2012 1 1341808.06950000000 390505.76562500000
0
|
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
|
|
26.05.2013, 11:40 | 18 |
Ничего сложного не вижу. Будет, только мне нужно отьехать на ~30 мин. Если не сделает "Скрипт" - вернусь и закончу. Одно мне осталось не понятно - почему начинается нумерация группы с 1 и заканчивается 1? Это не опечатка?
0
|
2 / 1 / 1
Регистрация: 25.05.2013
Сообщений: 216
|
|
26.05.2013, 11:41 [ТС] | 19 |
) Нет, не опечатка, так положено)
Очень надеюсь на Вашу помощь)
0
|
4377 / 661 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
|
|
26.05.2013, 13:15 | 20 |
Не переживайте. Я уже здесь, сейчас что-то сделаем...
0
|
26.05.2013, 13:15 | |
26.05.2013, 13:15 | |
Помогаю со студенческими работами здесь
20
DropDownList добавление пустой строки и присвоение.... Условное форматирование - поиск совпадений значений одной строки в другой Добавление пустой строки через регулярное выражение Как убрать добавление пустой строки в ArrayList? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |