Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.02.2010, 04:45   #1
Azz100
Пользователь
 
Регистрация: 16.12.2009
Сообщений: 34
По умолчанию Про дубликаты. В N-ый раз.

Здравствуйте уважаемые гуру, как в 2007 офисе решить такую простенькую задачку:

Имеются списки строк A и B, находящиеся в соответствующих столбцах. Списки разной длины, уникальны, в каждом отдельно взятом столбце отсутствую дубликаты, но они присутствуют в другом столбце.
Необходимо удалить дублирующееся строки из списка A, сравнив его со списком B, при этом во втором столбце они должны остаться.
Azz100 вне форума Ответить с цитированием
Старый 11.02.2010, 09:51   #2
Maxx
Форумчанин
 
Аватар для Maxx
 
Регистрация: 29.10.2008
Сообщений: 294
По умолчанию

Пример файла в студию!
Maxx вне форума Ответить с цитированием
Старый 11.02.2010, 10:29   #3
Azz100
Пользователь
 
Регистрация: 16.12.2009
Сообщений: 34
По умолчанию

Цитата:
Сообщение от Maxx Посмотреть сообщение
Пример файла в студию!
А чего не понятного то? Я же вроде рассосал все.
Azz100 вне форума Ответить с цитированием
Старый 11.02.2010, 10:49   #4
Volodshan
Форумчанин
 
Регистрация: 20.05.2008
Сообщений: 241
По умолчанию

Цитата:
Сообщение от Azz100 Посмотреть сообщение
А чего не понятного то? Я же вроде рассосал все.
Предлагаю дальше рассосаливать функции "ВПР", "ИНДЕКС", "ПОИСКПОЗ..." и прочие. Вам помочь стараются, а вы... Нет ничего проще и ценнее: "Здравствуйте, Пожалуйста, Спасибо, До видания"...
ps Да, учтите как работают функции с текстом, числами, датами, в какой сортировке...
Volodshan вне форума Ответить с цитированием
Старый 11.02.2010, 11:03   #5
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Цитата:
А чего не понятного то? Я же вроде рассосал все.
Т.е. Вы настаиваете, чтобы отвечающие заполняли таблицу примера самостоятельно? Это, мягко сказать, неуважительно.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 11.02.2010, 11:16   #6
dzv
Пользователь
 
Аватар для dzv
 
Регистрация: 15.01.2010
Сообщений: 55
По умолчанию

Или поиском воспользоваться, в таком случае...

P.S. Судя по названию темы, мог ли бы имеющимися примерами воспользоваться...
dzv вне форума Ответить с цитированием
Старый 11.02.2010, 11:30   #7
Azz100
Пользователь
 
Регистрация: 16.12.2009
Сообщений: 34
По умолчанию

Цитата:
Сообщение от Volodshan Посмотреть сообщение
Предлагаю дальше рассосаливать функции "ВПР", "ИНДЕКС", "ПОИСКПОЗ..." и прочие. Вам помочь стараются, а вы... Нет ничего проще и ценнее: "Здравствуйте, Пожалуйста, Спасибо, До видания"...
ps Да, учтите как работают функции с текстом, числами, датами, в какой сортировке...
Пожалуй, был не прав, но все же показалось что описал достаточно подробно.
Прикладываю к этому сообщению пример. Добавлю только, что регистр важен. "Hello World" и "Hello world" - разные строки.
Вложения
Тип файла: zip primer.zip (89.6 Кб, 11 просмотров)
Azz100 вне форума Ответить с цитированием
Старый 11.02.2010, 11:54   #8
Maxx
Форумчанин
 
Аватар для Maxx
 
Регистрация: 29.10.2008
Сообщений: 294
По умолчанию

Проверяйте:
Код:
Sub del()
Application.ScreenUpdating = False
    For i = 1 To Cells(Cells(Rows.Count, 1).End(xlUp).Row, 1).Row
        valToDel = Cells(i, 1).Value
        Range(Cells(1, 2), Cells(Cells(Rows.Count, 2).End(xlUp).Row, 2)).Select
        
        On Error Resume Next
        Selection.Find(valToDel).Activate
        If ActiveCell.Value = Cells(i, 1).Value Then Cells(i, 1).Delete Shift:=xlUp
    Next i
Application.ScreenUpdating = True
End Sub
Maxx вне форума Ответить с цитированием
Старый 11.02.2010, 12:06   #9
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Можно чуть проще. И методу Find добавить чувствительность к регистру
Код:
Sub Main()
    Dim i As Long: Application.ScreenUpdating = False
    For i = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
        If Not [B:B].Find(Cells(i, 1), MatchCase:=True) Is Nothing Then Cells(i, 1).Delete Shift:=xlUp
    Next
End Sub
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 11.02.2010, 12:38   #10
Azz100
Пользователь
 
Регистрация: 16.12.2009
Сообщений: 34
По умолчанию

Maxx, SAS888

Спасибо! Все работает.
Azz100 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите найти дубликаты в столбце komar73 Microsoft Office Excel 8 30.06.2009 20:21
Опять про PNG, только на этот раз по теме iImageList-а Altera Компоненты Delphi 6 30.06.2009 12:44
Еще раз про адресацию tae1980 Microsoft Office Excel 2 25.02.2009 07:56
ещё раз про Random (вдогонку к закрытой теме 'НЕ ПОЙМУ КАК ВЫВИСТИ ЧИСЛО') Serge_Bliznykov Общие вопросы Delphi 1 20.04.2008 12:37
У меня вопрос про базы данных,а точнее про таблицы!!! Alexij Общие вопросы Delphi 1 13.04.2008 23:24