Внимание! Это временный неофициальный архив старой версии форума Полигон Призраков, созданный сочувствующим форуму участником. Этот сайт просуществует лишь до тех пор, пока администрация Полигона не сдержит своё обещание и не откроет официальный архив по адресу old.sannata.org.

Полигон-2

Форум о старых компьютерах

Объявление форума

Если пользуетесь личными сообщениями и получили по электронной почте оповещение о новом письме, не отвечайте, пожалуйста, почтой. Зайдите на форум и ответьте отправителю через ЛС.

Полигон-2 »   Флейм на общие темы »   Помогите с Excel
RSS

Помогите с Excel

<<Назад  Вперед>> Страницы: 1 * 2 3 4
Печать
 
Jccwu
Advanced Member
Злой и Нечуткий

Откуда: Екатеринбург
Всего сообщений: 3579
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
6 апр. 2013
Ребят, вы просто спасете мне жизнь если скажете как можно решить данную проблему.
Arseny
Advanced Member
,,,=^..^=,,,

Откуда: Bryansk, Russia
Всего сообщений: 1722
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
13 окт. 2005
Jccwu написал:
[q]
ничего не понял. что такое vba?
[/q]
Visual Basic for Applications (VBA, Visual Basic для приложений) — немного упрощённая реализация языка программирования Visual Basic, встроенная в линейку продуктов Microsoft Office.
Jccwu
Advanced Member
Злой и Нечуткий

Откуда: Екатеринбург
Всего сообщений: 3579
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
6 апр. 2013
понятно.
бэйсиком не владею, увы
uav1606
Advanced Member


Откуда: Енакиево
Всего сообщений: 4373
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
16 янв. 2008
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
Jccwu, в 2007-м Excel'е на главной вот этот значок:



Т.е. выделяете весь вертикальный диапазон (щелчок по верхней ячейке, прокрутка до конца вниз, Shift+щелчок по последней ячейке), включая верхнюю ячейку, в которой формула-"затравка", потом жмёте эту кнопку и "Вниз".

P.S. Если строк 80 000, то эти формулы могут работать очень медленно... Тут и правда лучше на VBA делать.
ATauenis
Advanced Member


Откуда: Москва
Всего сообщений: 2904
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
30 апр. 2015
Заполняете формулу в 1 ячейку столбца, далее выделяете его целиком, если надо снимите выделение с ячейки/-ек заголовка, потом Правка->Заполнить->Вниз (в старых экселях) либо Главная->Заполнить->Вниз (в 2007+)

Подумать екселю придётся, как никак при этом выделяются все ячейки до упора, сколько эксель умеет (1048576 штук в 2010 версии и 65535 штук в 97-2003).

P.S. Опередили пока печатал :)
Fe-Restorator
Гость

Ссылка

del
Сейчас на форуме
uav1606
Advanced Member


Откуда: Енакиево
Всего сообщений: 4373
Рейтинг пользователя: 0


Ссылка


Дата регистрации на форуме:
16 янв. 2008
Fe-Restorator написал:
[q]
если ты сравниваешь ячейку первого столбца с содержимым второго столбца и находишь совпадение, значит соответствующую ячейку первого столбца уже можно пометить как "совпадающую". Т.е. ставить одновременно и "Совпад Ст.1", и "Совпад Ст.2" в соответствующих ячейках.
[/q]
Так не выйдет, т.к. "Совпад Ст.1" означает, что повторяющееся значение в первом столбце этой же строки, а во втором при этом может быть что угодно, т.е. дубль может быть на N тысяч строк ниже.
А "Совпад Ст.2" делает как раз наоборот - показывает, что во втором столбце этой же строки есть дубль, при этом его "прообраз" в первом столбце может быть где угодно, не на той же строке. Естественно, можно как-то эти формулы объединить в одном столбце, но сама формула тогда будет сложнее.
А удалять ячейки, если я правильно понял, нужно независимо, т.е. не целую строку. Соответственно, если, скажем, в первом столбце первая ячейка даёт "Совпад Ст.1", то её нужно удалять, а первую ячейку второго столбца - нет, т.к. она может быть и не дублем.
А если Вы имеете в виду, что при нахождении дубля в первом столбце как-то отметить его же во втором в другом месте - то простой формулой это сделать не получится, формулы не могут писать данные в другие ячейки (во всяком случае, в старых Excel'ях не могли). Т.е. формула может выдать что-то только в той ячейке, куда введена.
Fe-Restorator
Гость

Ссылка

uav1606 написал:
[q]
Так не выйдет
[/q]
Да, я уже разобрал логику, удалил содержимое поста.
Сейчас на форуме
<<Назад  Вперед>> Страницы: 1 * 2 3 4
Печать
Полигон-2 »   Флейм на общие темы »   Помогите с Excel
RSS

1 посетитель просмотрел эту тему за последние 15 минут
В том числе: 1 гость, 0 скрытых пользователей

Последние RSS
[Москва] LIQUID-Акция. Сливаются разъемы CF
МС7004 и 7004А на AT и XT
Пайка термотрубок
Проммать s478 PEAK 715VL2-HT ( Full-Size SBC)
Подскажите по 386 материке по джамперам.

Самые активные 5 тем RSS