Объявление форума |
Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС. |
Полигон-2 » Флейм на общие темы » Помогите с Excel |
<<Назад Вперед>> | Страницы: 1 * 2 3 4 | Печать |
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'ях не могли). Т.е. формула может выдать что-то только в той ячейке, куда введена. |
<<Назад Вперед>> | Страницы: 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 тем | |