powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Сравнение двух столбцов, сдвиг вниз, соответствие
25 сообщений из 55, страница 2 из 3
Сравнение двух столбцов, сдвиг вниз, соответствие
    #36474970
Neosky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, строк действительно много, пока порядка двух-трех тысяч, в будущем возможно увеличатся до 5-7 тысяч
так что этот макрос действительно важен...счас освобожу руки от других дел и попробую
...
Рейтинг: 0 / 0
Сравнение двух столбцов, сдвиг вниз, соответствие
    #36475080
-nail-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а обычный ВПР в вашем случае разве не поможет?
...
Рейтинг: 0 / 0
Сравнение двух столбцов, сдвиг вниз, соответствие
    #36475297
Neosky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а ВПР - это что?
...
Рейтинг: 0 / 0
Сравнение двух столбцов, сдвиг вниз, соответствие
    #36475401
-nail-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ищет значение в первом столбце массива таблицы и возвращает значение в той же строке из другого столбца массива таблицы.

Буква В в названии функции ВПР означает «вертикально». Функция ВПР используется вместо функции ГПР, если сравниваемые значения расположены в столбце слева от искомых данных.
--------------------------------------------------------------------------------------------------
в общем если во втором столбике есть значение которое содержится в первом столбике, она его найдет
...
Рейтинг: 0 / 0
Сравнение двух столбцов, сдвиг вниз, соответствие
    #36475475
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В H2
Код: plaintext
=VLOOKUP(B2;C:C; 1 ;FALSE)
и протянуть вниз.
Результат - удаляем все найденные, кодом можно сравнивать со вторым столбцом, при совпадении строку удалять.
Если строк много, можно сравнить два кода по скорости. Будет время, займусь ради интереса.
...
Рейтинг: 0 / 0
Сравнение двух столбцов, сдвиг вниз, соответствие
    #36475490
Neosky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hugo121, попробовала макрос прогнать, который и считает, и удаляет сразу...

Выдает ошибку runtime error 1001 и ругается на строчку Range("G1").Formula = "=COUNTIF(C:C;B1)" (желтым выделяет)

попробовала (раз у меня русский офис) заменить countif на СЧЕТЕСЛИ - все равно эта строка смущает. Что не так?
...
Рейтинг: 0 / 0
Сравнение двух столбцов, сдвиг вниз, соответствие
    #36475544
Neosky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А первый, который просто удаляет из рассчитанного столбца - работает!
...
Рейтинг: 0 / 0
Сравнение двух столбцов, сдвиг вниз, соответствие
    #36475582
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По поводу ошибки - замените ";" на ",".
ВПР выиграл, быстрее в 2 раза! На 5000 строк 20 сек.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
Sub DelVPRRezult()
Dim t
t = Timer
Application.ScreenUpdating =  0 
Dim x&, y&
Dim ws As Worksheet
Set ws = ActiveSheet
On Error Resume Next
With ws
    x = .UsedRange.Rows.Count
    Range("G1").Formula = "=VLOOKUP(B1,C:C,1,FALSE)"
    Range("G1").AutoFill Destination:=Range("G1:G" & x), Type:=xlFillDefault
    Application.Calculation = xlCalculationManual
    For y = x To  1  Step - 1 
    DoEvents
    If .Cells(y,  2 ).Value <> .Cells(y,  7 ).Value Then Else .Rows(y).EntireRow.Delete
    If y Mod  100  =  0  Then Application.StatusBar = "Working On Row " & y ' чтоб видеть процесс
    Next
End With
ws.Columns( 7 ).Clear
Application.ScreenUpdating =  1 
Application.StatusBar = False
Application.Calculation = xlCalculationAutomatic
Debug.Print Timer - t
End Sub
Для скорости отключил пересчёт при удалении строк и добавил DoEvents для комфорта :)
...
Рейтинг: 0 / 0
Сравнение двух столбцов, сдвиг вниз, соответствие
    #36475608
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Отчёт по скорости - удаление в обоих кодах занимает 14 сек., а вот расчёт формул...
Код: plaintext
1.
2.
3.
4.
 СЧЕТЕСЛИ -  25 . 20313  
 ИТОГО -  39 . 59375 

 ВПР -  6 . 15625  
 ИТОГО - 20 . 65625 
...
Рейтинг: 0 / 0
Сравнение двух столбцов, сдвиг вниз, соответствие
    #36475621
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В русском офисе в коде VBA:
Код: plaintext
Range("G1").FormulaLocal = "=СЧЕТЕСЛИ(C:C;B1)" 
...
Рейтинг: 0 / 0
Сравнение двух столбцов, сдвиг вниз, соответствие
    #36475800
Neosky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я что-то неправильно делаю наверное. Первый раз по файлику прогнала руками формулу счетесли и запустила короткий макрос по удалению строк - все отлично сработало.

Сейчас запускаю на второй файлик - абсолютно такой же, только цифири другие - у меня начинается какой-то непонятный процесс, который наглухо закрывает excel для доступа. То есть видно, что он что-то крутит - но очень долго, и в крайний раз написал мне какую-то неустранимую ошибку и вырубил комп. Потом причину ошибки система указала - неустранимый сбой
...
Рейтинг: 0 / 0
Сравнение двух столбцов, сдвиг вниз, соответствие
    #36475877
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код который зависает - короткий или длинный?
...
Рейтинг: 0 / 0
Сравнение двух столбцов, сдвиг вниз, соответствие
    #36475879
Neosky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Короткий. Первый раз вообще мигом пробежал! опомниться не успела. а вот второй - запустила после перезагрузки, трудится уже минут 20, не меньше.
...
Рейтинг: 0 / 0
Сравнение двух столбцов, сдвиг вниз, соответствие
    #36475906
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NeoskyКороткий. Первый раз вообще мигом пробежал! опомниться не успела. а вот второй - запустила после перезагрузки, трудится уже минут 20, не меньше. - подозреваю, что там UsedRange.Rows.Count намного больше, чем строк с данными.
Внизу в статусной строке счётчик идёт?
...
Рейтинг: 0 / 0
Сравнение двух столбцов, сдвиг вниз, соответствие
    #36475917
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хотя 20 минут - это в любом случае перебор для такой операции.
Приложил тестовый файл, там оба варианта кода, у меня работают, можете проверить.
...
Рейтинг: 0 / 0
Сравнение двух столбцов, сдвиг вниз, соответствие
    #36475925
Neosky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hugo121подозреваю, что там UsedRange.Rows.Count намного больше, чем строк с данными.
Внизу в статусной строке счётчик идёт?

счетчик пробежал до сотни, теперь внизу пусто
...
Рейтинг: 0 / 0
Сравнение двух столбцов, сдвиг вниз, соответствие
    #36475942
Neosky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hugo121Хотя 20 минут - это в любом случае перебор для такой операции.
Приложил тестовый файл, там оба варианта кода, у меня работают, можете проверить.

спасибо, качнула, проверю уже завтра, т.к. этот видно, что работает - может к завтрашнему дню закончит?
а снова по диспетчеру его закрывать побаиваюсь - опять синий экран выдаст...а я все таки с сервера сижу...
...
Рейтинг: 0 / 0
Сравнение двух столбцов, сдвиг вниз, соответствие
    #36475948
-nail-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hugo121,
а вот если еще и Microsoft Query сравнить, то он думаю в скорости намного выйграет, плюс никаких макросов, просто нажать Обновить и готово)
...
Рейтинг: 0 / 0
Сравнение двух столбцов, сдвиг вниз, соответствие
    #36475953
-nail-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
лучше использовать [a10000].end(xlup).row вместо UsedRange.Rows.Count, так думаю быстрее будет
...
Рейтинг: 0 / 0
Сравнение двух столбцов, сдвиг вниз, соответствие
    #36475968
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Neosky

счетчик пробежал до сотни, теперь внизу пусто - он специально считает сотнями, значит уже всё, готово
...
Рейтинг: 0 / 0
Сравнение двух столбцов, сдвиг вниз, соответствие
    #36475976
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-nail-Hugo121,
а вот если еще и Microsoft Query сравнить, то он думаю в скорости намного выйграет, плюс никаких макросов, просто нажать Обновить и готово) - ну так давай, учи нас, я там не разбираюсь почти, глядишь, и мне пригодится в работе...
...
Рейтинг: 0 / 0
Сравнение двух столбцов, сдвиг вниз, соответствие
    #36475982
Neosky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а почему тогда не дает с файлом работать? не заблокирован, просто что-то делает, а что - кто его знает
...
Рейтинг: 0 / 0
Сравнение двух столбцов, сдвиг вниз, соответствие
    #36475991
Hugo121
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну попробуй просто esc подержать на файле, должен выйти из кода, если не повис наглухо.
...
Рейтинг: 0 / 0
Сравнение двух столбцов, сдвиг вниз, соответствие
    #36476015
-nail-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Данные - получить внешние данные - получить данные из внешней ДБ (new database query) - excel files - ищем свой файл, открываем - если не видно листов - "отображать системные объекты" (в свойствах)- на последнем шаге - edit query - добавить условие - [ISN1]<>[ISN2]. Готово.
...
Рейтинг: 0 / 0
Сравнение двух столбцов, сдвиг вниз, соответствие
    #36476017
-nail-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Hugo121,

Ctrl+Break - остановит макрос
...
Рейтинг: 0 / 0
25 сообщений из 55, страница 2 из 3
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Сравнение двух столбцов, сдвиг вниз, соответствие
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]