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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2015, 16:14   #1
Limyh
 
Регистрация: 06.12.2015
Сообщений: 5
По умолчанию Как удалить значения одного столбца в другом, не получается

Доброго дня.

И форум смотрел и в интернете, и сам пробовал. НЕ получается
Ситуация такая, есть 2 столбца, Столбец А - 22 тысячи строк, Столбец B - 2004 строк (в прикрепленном к теме примере, столбец B для формулы, я специальной вставкой транспорировал в строку). НУ и сделал значений 30 штук, для удобства и понимания логики действий с большим массивом.

Нужно следующее, взять каждое значение из Диапазона Ячеек - B1:BYC и проверить их на наличие в столбце A1:A20000.
Если в столбце A1:A20000 в какой-то ячейке встречается любое значение из диапазона B1:BYC, то ячейку в А1:A20000 удаляем, либо пишем туда какой-то символ, который потом найдем фильтром и массово удалим.

Что-то подобное делал вот такой формулой: =--ЕЧИСЛО(ПОИСК($B$1;$A$2:$A$4945)) - вставляешь в ячейку B2 и тянешь до низу. Есть вхождение - 1, нет вхождения -0
Но тогда таблица была небольшая и удобно было.

В данном же случае, таблица огромнейшая получится. И тянуть каждый столбец нереально на 2000 столбцов

Можно еще попробовать неким перебором: в ячейку С2 вставить формулу с условием: если ни одного значения из диапазона B1:BYC, не встречается в диапазоне A1:A20000, то в ячейку СN, вставляем значение ячейки AN, если же, какое-то значение из B1:BYC, встречается в диапазоне A1:A20000, то в ячейку СN - ставим любой символ. Потом по фильтру удалил.
Не могу формулу сделать здесь. Этот вариант наверняка будет быстрее, и проще, если конечно так можно сделать.

Надеюсь понятно описал
Пример прилагаю.
Спасибо
Вложения
Тип файла: xlsx Пример.xlsx (11.6 Кб, 9 просмотров)
Limyh вне форума Ответить с цитированием
Старый 06.12.2015, 16:56   #2
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Код:
=dommatrasov(A2;$B$1:$E$1)
и протянуть. Если не под МАКом конечно...
Код:
Function dommatrasov(s As String, r As Range) As Boolean
Dim el
    With CreateObject("scripting.dictionary"): .comparemode = 1
        For Each el In r.Value
            .Item(Trim(el)) = 0&
        Next
        For Each el In Split(s)
            If .exists(el) Then dommatrasov = True: Exit Function
        Next
    End With
End Function
Критерии могут быть и иначе расположены - например на другом листе в столбце (как раз для случая "Столбец B - 2004 строк").
Код:
=dommatrasov(A2;Лист2!$A$1:$A$4)
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 06.12.2015 в 17:35.
Hugo121 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заполнение строк одного столбца по отношению к заполненным строкам соседнего столбца Alexsandrr Microsoft Office Excel 10 14.10.2013 16:56
Как отобразить контент одного сайта, на другом? hospes16 Свободное общение 11 26.03.2013 00:04
проблема при копировании одного столбца из одного файла в другой файл tanunya Помощь студентам 0 24.02.2012 21:30
Сумма из одного столбца с числами в зависимости от интервала дат из другого столбца Severny Microsoft Office Excel 10 14.03.2011 10:13