Страницы: 1
RSS
Два диапазона для сравнения и выделения, сравнить два файла и выделить совпадения с учетом количества
 
приветствую!
срочно нужна помощь. задача следующая:
есть два документа Excel
в каждом есть столбец с данными (цифровой код), по которому можно сравнить эти документы
надо в одном из файлов выделить строки, которые есть в другом с учётом количества
т.е. если в диапазоне первого файла число 30606 будет встречаться 5 раз, а в диапазоне второго файла 18 раз, то во втором файле надо выделить строку только 5 раз
как то так должен выглядеть результат
может через VBA или может есть какая надстройка для Excel с этой функцией
очень надо помочь
https://prnt.sc/V4BqaXpWqJcm
 
sonicking, Здравствуйте, Вы бы приложили файл с примером, как его лучше создать описано ТУТ
 
Цитата
написал:
Вы бы приложили файл с примером
вот два файлика
надо в файле два списка_марки.xlsx выделить цветом ячейки совпадающие (с учётом количества) с ячейками в файле два списка_остатки.xlsx
 
Поиск совпадений в двух списках
 
sonicking, У Вас файлы не прикрепились, почитайте правила, есть ограничения по размеру файлов
 
что то не прикрепились
в файлах только столбец для сравнения, без остального наполнени
Изменено: sonicking - 26.08.2026 14:49:13
 
Попробуйте таким макросом
Код
Sub Макрос1()
    Dim n As Long, sd As Object
    Set sd = CreateObject("Scripting.Dictionary")
    With Workbooks("два списка_остатки.xlsx").Worksheets("Лист1")
        n = .Cells(.Rows.Count, 1).End(xlUp).Row
        arr_1 = .Range("A2:A" & n).Value
        For n = 1 To UBound(arr_1)
            If arr_1(n, 1) <> "" Then
                If Not sd.Exists(arr_1(n, 1)) Then
                    sd.Add arr_1(n, 1), 1
                Else
                    sd(arr_1(n, 1)) = sd(arr_1(n, 1)) + 1
                End If
            End If
        Next
    End With
    With ThisWorkbook.Worksheets("Лист1")
        n = .Cells(.Rows.Count, 1).End(xlUp).Row
        arr_2 = .Range("A1:A" & n).Value
        For n = 1 To UBound(arr_2)
            If arr_2(n, 1) <> "" Then
                If sd.Exists(arr_2(n, 1)) Then
                    If sd(arr_2(n, 1)) > 0 Then
                        sd(arr_2(n, 1)) = sd(arr_2(n, 1)) - 1
                        .Cells(n, 1).Interior.Color = 65535
                    End If
                End If
            End If
        Next
    End With
End Sub
Изменено: Msi2102 - 27.08.2026 13:57:42
Страницы: 1
Читают тему
Наверх