Объявление форума |
Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС. |
Полигон-2 » Флейм на общие темы » Помогите с Excel |
<<Назад Вперед>> | Страницы: 1 2 3 4 | Печать |
Jccwu
Advanced Member
Злой и Нечуткий Откуда: Екатеринбург Всего сообщений: 3579 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 6 апр. 2013 |
Вопрос, как удалить дубликаты в столбце. Интересует удаление и дубликатов, и оригиналов дубликатов. Другими словами, если есть два столбца с одинаковыми номерами, то эти номера необходимо удалить из всех столбцов. |
uav1606
Advanced Member
Откуда: Енакиево Всего сообщений: 4373 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 16 янв. 2008 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 9 сентября 2016 19:38 Сообщение отредактировано: 9 сентября 2016 19:39
Вот это не пойдёт? http://exceltip.ru/как-сравнит...етоды-сра/ Удалять, правда, потом придётся вручную, например, применив автофильтр по этому дополнительному столбцу с условием. |
Jccwu
Advanced Member
Злой и Нечуткий Откуда: Екатеринбург Всего сообщений: 3579 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 6 апр. 2013 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 9 сентября 2016 20:33 Сообщение отредактировано: 9 сентября 2016 20:34
нет, если удалять вручную то этот способ точно не подойдет. представь себе столбцы из десятков тысяч строк если в них будет тысяч пять дубликатов которые надо будет удалять вручную? нереально. |
uav1606
Advanced Member
Откуда: Енакиево Всего сообщений: 4373 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 16 янв. 2008 |
А как именно нужно удалять повторяющиеся номера? Просто очистить ячейку или, например, удалить её со смещением всего столбца вверх? Или всю строку удалять? Может, пример приведёте, как выглядит таблица, а то я ТЗ не очень понял. И какая версия Excel? |
Arseny
Advanced Member
,,,=^..^=,,, Откуда: Bryansk, Russia Всего сообщений: 1722 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 13 окт. 2005 |
VBA тебе в помощь. Напиши программу и получишь любой результат. |
Jccwu
Advanced Member
Злой и Нечуткий Откуда: Екатеринбург Всего сообщений: 3579 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 6 апр. 2013 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 9 сентября 2016 21:43 Сообщение отредактировано: 9 сентября 2016 21:44
uav1606 написал: удалять со смещением столбца вверх А как именно нужно удалять повторяющиеся номера? пример: 123 - 456 234 - 567 456 - 789 567 - 908 имеем: по два повторения в обоих столбцах которые надо найти и удалить. отсортировать оба стобца и просто удалить не получится, так как стобцы неодинаковы по объему данных, т.е в одном столбце 50 000 строк, а в другом 5000 |
Jccwu
Advanced Member
Злой и Нечуткий Откуда: Екатеринбург Всего сообщений: 3579 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 6 апр. 2013 |
Arseny написал: ничего не понял. что такое vba? тебе в помощь. Напиши программу и получишь любой результат. |
Jccwu
Advanced Member
Злой и Нечуткий Откуда: Екатеринбург Всего сообщений: 3579 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 6 апр. 2013 |
Ребят, вы просто спасете мне жизнь если скажете как можно решить данную проблему. |
Arseny
Advanced Member
,,,=^..^=,,, Откуда: Bryansk, Russia Всего сообщений: 1722 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 13 окт. 2005 |
Jccwu написал: Visual Basic for Applications (VBA, Visual Basic для приложений) — немного упрощённая реализация языка программирования Visual Basic, встроенная в линейку продуктов Microsoft Office. ничего не понял. что такое vba? |
Jccwu
Advanced Member
Злой и Нечуткий Откуда: Екатеринбург Всего сообщений: 3579 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 6 апр. 2013 |
понятно. бэйсиком не владею, увы |
uav1606
Advanced Member
Откуда: Енакиево Всего сообщений: 4373 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 16 янв. 2008 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 9 сентября 2016 22:14 Сообщение отредактировано: 10 сентября 2016 14:12
Jccwu, ну, допустим, что у Вас Excel 2007 и вот такая таблица: Добавляем столбец, в который вводим формулу: =ЕСЛИ(ЕОШИБКА(ПОИСКПОЗ(A2;$B$2:$B$14;0));"";"Совпад Ст.1") Подразумевается, что первая строка таблицы - заголовок. Формулу в этом примере вводим в ячейку C2. Потом растягиваем её на весь столбец. (Естественно, у Вас адреса ячейки и диапазон будут другие: A2 - это первая ячейка первого сравниваемого столбца, $B$2:$B$14 - весь второй сравниваемый столбец.) Аналогично добавляем ещё один столбец, но с другой формулой (затравка в ячейку D2, потом растягиваем): =ЕСЛИ(ЕОШИБКА(ПОИСКПОЗ(B2;$A$2:$A$14;0));"";"Совпад Ст.2") (Естественно, у Вас адреса ячейки и диапазон будут другие: B2 - это первая ячейка второго сравниваемого столбца, $A$2:$A$14 - весь первый сравниваемый столбец. Если у Вас столбцы с разным количеством ячеек, то, конечно, у Вас во втором случае будут отличаться не только буквы, но и цифры в $A$2:$A$14.) Получим примерно следующее: Столбец C показывает "Совпад Ст.1", если в столбце A в этой же строке содержится значение, которое есть где-то в столбце B. Столбец D показывает обратное - что в столбце B в этой же строке содержится значение, которое есть где-то в столбце A. Теперь выделяем два добавленных столбца, копируем в буфер, правой - Специальная вставка - Значения - ОК. Это чтобы у нас в этих столбцах теперь были не формулы, а значения, т.к. мы будем удалять ячейки, соответственно, формулы начнут показывать белиберду. Теперь включаем фильтр. Выбираем автофильтром в столбце C непустые ячейки (т.е. где "Совпад Ст.1"). Выделяем весь видимый диапазон в столбце A (только лучше не весь столбец, а растянуть с первой до последней ячейки). Жмём F5 - Выделить - Только видимые. Снимаем фильтр. Удаляем со сдвигом вверх (т.е. правой по одной из оставшихся выделенными ячеек - Удалить - Со сдвигом вверх). Теперь то же самое делаем со столбцом D, т.е. включаем фильтр по непустым в D (т.е. где "Совпад Ст.2"). Выделяем весь видимый диапазон в столбце B (только лучше не весь столбец, а растянуть с первой до последней ячейки). Жмём F5 - Выделить - Только видимые. Снимаем фильтр. Удаляем со сдвигом вверх. Теперь видим примерно следующее: Как видим, остались только уникальные значения. Только проверяйте, как говорится, на кошках, а то мало ли... |
Jccwu
Advanced Member
Злой и Нечуткий Откуда: Екатеринбург Всего сообщений: 3579 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 6 апр. 2013 |
а можно как-то размножить формулу по ячейкам не растягивая ее? Данных много, если строк 80 тыс, растягивание займет много времени, и очень сильные тормоза. |
uav1606
Advanced Member
Откуда: Енакиево Всего сообщений: 4373 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 16 янв. 2008 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 10 сентября 2016 11:31 Сообщение отредактировано: 10 сентября 2016 11:36
Jccwu, в 2007-м Excel'е на главной вот этот значок: Т.е. выделяете весь вертикальный диапазон (щелчок по верхней ячейке, прокрутка до конца вниз, Shift+щелчок по последней ячейке), включая верхнюю ячейку, в которой формула-"затравка", потом жмёте эту кнопку и "Вниз". P.S. Если строк 80 000, то эти формулы могут работать очень медленно... Тут и правда лучше на VBA делать. |
ATauenis
Advanced Member
Откуда: Москва Всего сообщений: 2904 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 30 апр. 2015 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 10 сентября 2016 11:56 Сообщение отредактировано: 10 сентября 2016 11:57
Заполняете формулу в 1 ячейку столбца, далее выделяете его целиком, если надо снимите выделение с ячейки/-ек заголовка, потом Правка->Заполнить->Вниз (в старых экселях) либо Главная->Заполнить->Вниз (в 2007+) Подумать екселю придётся, как никак при этом выделяются все ячейки до упора, сколько эксель умеет (1048576 штук в 2010 версии и 65535 штук в 97-2003). P.S. Опередили пока печатал |
Fe-Restorator |
NEW! Сообщение отправлено: 10 сентября 2016 12:00 Сообщение отредактировано: 10 сентября 2016 12:15
del |
Сейчас на форуме |
uav1606
Advanced Member
Откуда: Енакиево Всего сообщений: 4373 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 16 янв. 2008 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 10 сентября 2016 12:05 Сообщение отредактировано: 10 сентября 2016 12:12
Fe-Restorator написал: Так не выйдет, т.к. "Совпад Ст.1" означает, что повторяющееся значение в первом столбце этой же строки, а во втором при этом может быть что угодно, т.е. дубль может быть на N тысяч строк ниже. если ты сравниваешь ячейку первого столбца с содержимым второго столбца и находишь совпадение, значит соответствующую ячейку первого столбца уже можно пометить как "совпадающую". Т.е. ставить одновременно и "Совпад Ст.1", и "Совпад Ст.2" в соответствующих ячейках. А "Совпад Ст.2" делает как раз наоборот - показывает, что во втором столбце этой же строки есть дубль, при этом его "прообраз" в первом столбце может быть где угодно, не на той же строке. Естественно, можно как-то эти формулы объединить в одном столбце, но сама формула тогда будет сложнее. А удалять ячейки, если я правильно понял, нужно независимо, т.е. не целую строку. Соответственно, если, скажем, в первом столбце первая ячейка даёт "Совпад Ст.1", то её нужно удалять, а первую ячейку второго столбца - нет, т.к. она может быть и не дублем. А если Вы имеете в виду, что при нахождении дубля в первом столбце как-то отметить его же во втором в другом месте - то простой формулой это сделать не получится, формулы не могут писать данные в другие ячейки (во всяком случае, в старых Excel'ях не могли). Т.е. формула может выдать что-то только в той ячейке, куда введена. |
Fe-Restorator |
NEW! Сообщение отправлено: 10 сентября 2016 12:18
uav1606 написал: Да, я уже разобрал логику, удалил содержимое поста. Так не выйдет |
Сейчас на форуме |
Jccwu
Advanced Member
Злой и Нечуткий Откуда: Екатеринбург Всего сообщений: 3579 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 6 апр. 2013 |
uav1606 написал: можно удалить вместе со второй ячейкой второго столбца. Важен лишь первый столбец. Второй после всех манипуляций все равно будет удален. Ст.1", то её нужно удалять, а первую ячейку второго столбца - нет Самое главное, удалить повторяющиеся значения в первом столбце. |
uav1606
Advanced Member
Откуда: Енакиево Всего сообщений: 4373 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 16 янв. 2008 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 10 сентября 2016 12:59 Сообщение отредактировано: 10 сентября 2016 13:09
Jccwu, тогда можете второй столбец (который D) по моей инструкции просто не создавать. Ну и не делать никаких манипуляций с ним и с столбцом B в моём примере. P.S. Приведённый мною алгоритм не удаляет дубликаты в самом столбце, т.е. если там могут быть одинаковые значения, то их ещё отдельно нужно поискать. Т.е. если у Вас что-то вроде ... 2 3 4 25 2 ... Такие дубликаты (которые в одном и том же столбце) нужно удалять как-то так: http://exceltip.ru/повторяющие...айти-выде/ |
Jccwu
Advanced Member
Злой и Нечуткий Откуда: Екатеринбург Всего сообщений: 3579 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 6 апр. 2013 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 10 сентября 2016 13:35 Сообщение отредактировано: 10 сентября 2016 13:37
в том то и дело что найти повторяющиеся несложно, сложно их удалить. Проблема в том, что удаляются только дублирующиеся, а мне надо чтобы все найденные дубликаты были удалены вместе с оригиналами |
uav1606
Advanced Member
Откуда: Енакиево Всего сообщений: 4373 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 16 янв. 2008 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 10 сентября 2016 14:04 Сообщение отредактировано: 10 сентября 2016 14:09
Тот мой алгоритм для двух столбцов как раз и позволяет это сделать. Если нужно удалить и дубликаты, и оригиналы в одном и том же столбце, тогда можно добавить столбец с формулой: =СЧЁТЕСЛИ($A$2:$A$14;A2)>1 Где ИСТИНА - там дубликат (подразумевается, что ищем в диапазоне $A$2:$A$14). Дальше растянуть формулу и повторить те же действия, что я описывал выше (фильтр, выделить отфильтрованные, F5 - Выделить - Только видимые, снятие фильтра, удаление). Адреса ячеек и диапазоны я привёл для примера выше, т.е. тут мы ищем дубликаты в столбце A ("Слоны"). Или в Excel 2007+ есть возможность выделения всех дубликатов цветом. |
Кай
Гость
Divine Assassin Откуда: извне (from beyond) Всего сообщений: 13709 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 8 авг. 2010 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 10 сентября 2016 14:21 Сообщение отредактировано: 10 сентября 2016 14:22
...Интересно, а мамкин хелп курили? https://www.youtube.com/watch?v=uZcsRoKalEM |
Jccwu
Advanced Member
Злой и Нечуткий Откуда: Екатеринбург Всего сообщений: 3579 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 6 апр. 2013 | |
uav1606
Advanced Member
Откуда: Енакиево Всего сообщений: 4373 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 16 янв. 2008 |
Значит, Вы что-то не то сделали. Дайте полный скриншот с заголовками и номерами строк, и чтобы вверху была видна формула в ячейке напротив двух красных. |
Jccwu
Advanced Member
Злой и Нечуткий Откуда: Екатеринбург Всего сообщений: 3579 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 6 апр. 2013 |
Кай написал: https://www.youtube.com/watch?v=uZcsRoKalEMКай, ты забежал вперед, не прочитав смысл задания. Смысл не удалить дубликаты, а удалить и дубликаты и оригиналы. ...Интересно, а мамкин хелп курили? |
Кай
Гость
Divine Assassin Откуда: извне (from beyond) Всего сообщений: 13709 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 8 авг. 2010 |
Виноват, постараюсь исправиться. |
uav1606
Advanced Member
Откуда: Енакиево Всего сообщений: 4373 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 16 янв. 2008 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 10 сентября 2016 14:39 Сообщение отредактировано: 10 сентября 2016 14:56
Jccwu, а, уже вижу - зачем же Вы оставили в формуле $A$2:$A$14? Это ведь у меня 14 строк, у Вас же будет что-то вроде $A$2:$A$10000. Т.е. вместо 10000 будет номер последней ячейки в столбце A. То же самое с другими подобными диапазонами. Я же их привёл для своей таблицы, понятно, что нужно скорректировать их после вставки формулы-затравки. А сейчас он у Вас ищет дубликаты только в первых 13 строчках. Это как минимум, кроме того, я смотрю, Вы как-то формулу переделали, что она у Вас "ЛОЖЬ" выдаёт? В любом случае, нужен полный скриншот, а то у Вас там обрезано почти всё, что нужно. |
Jccwu
Advanced Member
Злой и Нечуткий Откуда: Екатеринбург Всего сообщений: 3579 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 6 апр. 2013 |
да нет, это просто у меня курсор стоит в ячейке с этой формулой. Не в той где расчеты. в общем сейчас пытаюсь разобраться с вашим способом, там какая то непонятка есть. Возможно этот способ будет работать. Но у меня что-то не получается. туплю видимо. |
uav1606
Advanced Member
Откуда: Енакиево Всего сообщений: 4373 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 16 янв. 2008 |
Дайте скрин, я скажу, что не так. |
Jccwu
Advanced Member
Злой и Нечуткий Откуда: Екатеринбург Всего сообщений: 3579 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 6 апр. 2013 |
uav1606 написал: ваш способ работает. Просто нереальное спасибо за помощь. На нескольких форумах запостил, но ответ получил только тут. Только проверяйте, как говорится, на кошках, а то мало ли... Поражаюсь насколько хорошо вы знаете формулы эксела. |
uav1606
Advanced Member
Откуда: Енакиево Всего сообщений: 4373 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 16 янв. 2008 |
Jccwu написал: Пожалуйста. Только перепроверяйте всё, а то мало ли, где-то что-то может не то вылезти. спасибо за помощь |
Jccwu
Advanced Member
Злой и Нечуткий Откуда: Екатеринбург Всего сообщений: 3579 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 6 апр. 2013 |
uav1606 написал: только непонятно зачем копировать значения из столбца С и D Пожалуйста. Только перепроверяйте всё, а то мало ли, где-то что-то может не то вылезти. |
Jccwu
Advanced Member
Злой и Нечуткий Откуда: Екатеринбург Всего сообщений: 3579 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 6 апр. 2013 |
uav1606 написал: вот тут, если делать в такой последовательности, то снятие фильтра надо делать после того как удаляешь со сдвигом а не до, иначе выделения сбиваются и приходится заново все выделять. Выделяем весь видимый диапазон в столбце B (только лучше не весь столбец, а растянуть с первой до последней ячейки). Жмём F5 - Выделить - Только видимые. Снимаем фильтр. Удаляем со сдвигом вверх. |
uav1606
Advanced Member
Откуда: Енакиево Всего сообщений: 4373 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 16 янв. 2008 |
Профиль | Сообщить модератору
NEW! Сообщение отправлено: 10 сентября 2016 19:27 Сообщение отредактировано: 10 сентября 2016 19:32
Jccwu, у меня в 2007-м Excel'е без снятия фильтра при щелчке правой кнопкой мыши и выборе "Удалить" он спрашивал "Удалить всю строку листа?" и не выдавал стандартного меню "Удалить со сдвигом вверх" и т.п. Если же сначала сделать что я писал - нажать F5, в появившемся окне "Выделить", потом "Только видимые ячейки", то потом можно безопасно снять фильтр. Потом нужно правой щёлкнуть по одной из оставшихся выделенными ячеек, и там уже выбирать правой - "Удалить" и т.п. Тогда выделения не сбиваются. Вы, вероятно, щёлкнули правой просто по пустой (не выделенной) ячейке, тогда да, выделение сбивается, нужно всё снова делать. Ну или, чтобы не искать выделенную ячейку, можно просто после снятия фильтра выбрать "Удалить" на главной панели. А так, как Вы делали - есть риск, что удалятся не только дубликаты, но и ячейки между ними, т.к. при включенном фильтре Excel иногда как-то странно считает выделение - оно его распространяет и на невидимые на данный момент области. Для этого и нужно это F5 и т.п. Ну и в таком варианте нет выбора "Со сдвигом вверх" или ещё куда. (По крайней мере, у меня так.) Jccwu написал: Это не обязательно, но если Вы удаляете любую ячейку или строку, то формулы в C и D могут начать выдавать нам не то, что нужно. А если Вы вставили значения Специальной вставкой, как я сказал, то дальнейшие манипуляции со столбцами A и B уже на C и D не повлияют, потому что там теперь просто текст, а не формулы. только непонятно зачем копировать значения из столбца С и D |
Jccwu
Advanced Member
Злой и Нечуткий Откуда: Екатеринбург Всего сообщений: 3579 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 6 апр. 2013 |
uav1606 написал: нет, у меня на тестовом варианте с 25 ячейками так получилось, а когда начал с файлом работать, в котором 80 тыс строк, и приходилось ждать по 5 минут каждое действие, почему-то не получилось, и выделения пропадало сразу же после того как я снимал фильтр. Вы, вероятно, щёлкнули правой просто по пустой (не выделенной) ячейке, тогда да, выделение сбивается, нужно всё снова делать. |
uav1606
Advanced Member
Откуда: Енакиево Всего сообщений: 4373 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 16 янв. 2008 |
Странно, сейчас попробовал на 10000 строк - так же работает, как и в маленькой. Ну, может, какая-то особенность Вашей версии Excel или таблицы. |
Jccwu
Advanced Member
Злой и Нечуткий Откуда: Екатеринбург Всего сообщений: 3579 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 6 апр. 2013 |
ладно, это уже не суть важно, главное цель достигнута и вопрос решен. еще раз спасибо вам. |
Alvares
Full Member
Откуда: Воронеж Всего сообщений: 291 Рейтинг пользователя: 0 Ссылка Дата регистрации на форуме: 20 сен. 2015 |
Jccwu написал: Чтобы не пересчитывалось после каждого чиха, можно убрать авторасчет в настройках и пользоваться расчетом в ручном режиме. |
<<Назад Вперед>> | Страницы: 1 2 3 4 | Печать |
Полигон-2 » Флейм на общие темы » Помогите с Excel |
0 посетителей просмотрели эту тему за последние 15 минут |
В том числе: 0 гостей, 0 скрытых пользователей |
Последние | |
[Москва] LIQUID-Акция. Сливаются разъемы CF МС7004 и 7004А на AT и XT Пайка термотрубок Проммать s478 PEAK 715VL2-HT ( Full-Size SBC) Подскажите по 386 материке по джамперам. |
Самые активные 5 тем | |