Есть два столбца http://c2n.me/3frzj6S 1 Столбик - 2514 строк 2 Столбик - 384 строк Мне нужно чтобы ексель взял за основу первый столбик и сказал какие позиции отсутствую в втором столбике. Брал за основу формулу =IF(ISERROR(MATCH(A1,$C$1:$C$5,0)),"",A1) но она не работает у меня уже подгорает я не знаю что делать, я бы вручную это сделал бы быстрее.
Представьте. Вы приходите в ателье костюм заказать. Но не на Вас - для брата, который находится в другом городе, и предлагаете закройщику прокатиться туда... Костюм закройщику нужен?
vikttur написал: Представьте. Вы приходите в ателье костюм заказать. Но не на Вас - для брата, который находится в другом городе, и предлагаете закройщику прокатиться туда... Костюм закройщику нужен?
все варианты не пробовала, но по файлу (пост#14) - есть расхождения по сравнению с таким макросом: (- пока не могу понять почему...)
Код
Sub dic_REMOVE()
'Сравнение столбцов и выборка невстречающихся строк (>100 000 строк)
'http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=8&TID=25265&TITLE_SEO=25265&MID=221593&tags=&q=d.remove&DATE_CHANGE=0&order=relevance&s=%D0%9D%D0%B0%D0%B9%D1%82%D0%B8#message221593
'nilem 21 Апр 2011 13:52:41
Dim x, i&
With CreateObject("Scripting.Dictionary")
.CompareMode = 0
x = Sheets("Sheet1").Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row).Value
For i = 1 To UBound(x): .Item(x(i, 1)) = i: Next
x = Sheets("Sheet1").Range("C1:C" & Cells(Rows.Count, 3).End(xlUp).Row).Value
For i = 1 To UBound(x)
If .Exists(x(i, 1)) Then .Remove (x(i, 1))
Next
'выгрузка в столбец F
If .Count > 0 Then Sheets("Sheet1").[F1].Resize(.Count) = Application.Transpose(.Keys)
End With
End Sub
может ТС внесёт ясность по своим данным (проверив их самостоятельно и опубликовав верный ответ)
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Тут макросы лишние. Просто человеку лень выложить нормально файл и прочесть справку :-) Плюс слова "не работает" никак не описывают проблему. Что именно не работает? С чего решили, что не работает? Ошибка появляется или все подтягивается или еще что...
Если опираться на то, что есть: MATCH(A1,$C$1:$C$5,0) будет искать только в 5-ти сроках. Надо увеличить диапазон: MATCH(A1,$C$1:$C$500,0) Думаю тогда все заработает.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
согласна, просто SQL-подход понравился - захотелось проверить - пока в задумчивости... пост#14 отличился элегантностью (в моём понимании)... неравнодушная я стала к SQL ... хотя, конечно, формулы в ячейках тоже заслуживают уважения по сравнению с многословием макросов... а формулы запросов - это отдельная история...
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
нашла ошибку в макросе, адаптированном, - исправила свой пост выше - беглым взглядом результат идентичен запросу SQL (пост#14) sorry - поспешила с выводом - начало совпадает - но если прокрутить страницу вниз - разница в каких-то 12 значений: sql - общей сложностью строк 1741 (с шапкой), макрос 1729 (с шапкой) ОШИБКА ВСКРЫТА: есть дубли в исходной таблице (в словарь они попадают как одно значение), а sql их подгребает задвоенными как есть (с одним так точно такая проблема - все не искала)
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
The_Prist: Просто человеку лень выложить нормально файл и прочесть справку Приёмы и Правила форума) Плюс слова "не работает" никак не описывают проблему.
p.s. да, если поставить .CompareMode = 0 - отрабатывает как sql (изменения внесены в макрос выше)
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)