Страницы: 1
RSS
УФ или макрос для поиска несовпадений, формула для УФ\макрос для поиска несовпадений
 
На листе "для заявки ПВ47" указаны коды изделий и его альтернатив в столбцах "B" и "D", соответственно.
На листе "коды" перечислены коды изделия и его альтернативы в беспорядочном соотношении (код в столбце А не соответствует столбцу B)

Если взять за эталон лист "для заявки ПВ47" с кодами изделий и их оригиналов в столбцах "B" и "D", соответственно, возможно ли найти "засланного казачка" (поиск кода изделия, который находится в списке на листе "коды", но который отсутствует на листе оригиналов и их замен)?

p.s. таблица проверена вручную, лишних кодов на листе "коды" не нашлось. Я специально добавил туда один и пытался найти с УФ формулой =СЧЕТЕСЛИ, не вышло :(
 
Макросом проще всего
Код
Sub ПоискЛишнихКодов()
    Dim i&, rCnt&, arInp(), dic As Object, arOut()
    Set dic = CreateObject("Scripting.Dictionary")
    
    With Sheets("для заявки ПВ47")
      rCnt = .Columns(1).Find("*", , , , , xlPrevious).Row - 4
      arInp = .Range("B5:D5").Resize(rCnt).Value
    End With
    For i = 1 To rCnt
        dic(arInp(i, 1)) = Empty
        If Not IsEmpty(arInp(i, 3)) Then dic(arInp(i, 3)) = Empty
    Next
    
    With Sheets("коды")
      rCnt = .Columns(1).Find("*", , , , , xlPrevious).Row
      arInp = .Range("A1:B1").Resize(rCnt).Value
      ReDim arOut(1 To rCnt, 1 To 2)
      
      For i = 1 To rCnt
          If Not dic.Exists(arInp(i, 1)) Then arOut(i, 1) = True
          If Not dic.Exists(arInp(i, 2)) Then arOut(i, 2) = True
      Next
      
      .Range("C1:D1").Resize(rCnt).Value = arOut
    End With
End Sub
 
testuser, макрос применим ко всей книге или к определенному листу?
лишний код не ищет, либо что-то не так делаю
 
Цитата
WHIS написал:
макрос применим ко всей книге или к определенному листу?
К вашему вопросу и файлу, соответственно. Напротив лишнего кода должно появится значение "Истина".
 
testuser, могли бы сбросить файл с рабочим кодом. У меня, сожалению не выводится "истина" с лишним кодом, который является 3-27-000999 на листе с кодами.
К такому коду нет ни одной альтернативы ни в столбце "B" ни в "D" на первом листе, и макрос его не выявляет
Изменено: WHIS - 09.10.2024 18:22:51
 
Цитата
WHIS написал:
могли бы сбросить файл с рабочим кодом
Страницы: 1
Наверх