Страницы: 1
RSS
К номерам проставить клиентов с другого листа, если номера находятся в диапазоне, ограниченном нижней и верхней границами
 
Добрый день, форумчане. Нужна Ваша помощь, сам не соображу как сделать.
Есть файл с 2 таблицами. На листе "отправление", есть столбец "Номер", к этим номерам необходимо проставить клиентов, с листа " Справочник клиентов". Номер находится в диапазоне нижней и верхней границы.  
 
При активном листе "отправление"
Код
Sub Tablica()
Dim i As Long
Dim j As Long
Dim iLastRow As Long
 iLastRow = Cells(Rows.Count, 1).End(xlUp).Row
 Range("E2:E" & iLastRow).ClearContents
 With Worksheets("Справочник клиентов")
  For i = 2 To iLastRow
    For j = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
      If Cells(i, "A") > .Cells(j, "B") And Cells(i, "A") < .Cells(j, "C") Then
        Cells(i, "E") = .Cells(j, "A")
        Exit For
      End If
    Next
  Next
 End With
End Sub
 
Спасибо, макрос пригодится. А формулами такое нельзя сделать?  
 
Массивная:
Код
=ЕСЛИОШИБКА(ИНДЕКС('Справочник клиентов'!$A$1:$A$25;НАИМЕНЬШИЙ(ЕСЛИ((A2>='Справочник клиентов'!$B$2:$B$25)*(A2<='Справочник клиентов'!$C$2:$C$25);СТРОКА('Справочник клиентов'!$A$2:$A$25));1));"")
 
можно массивной
=INDEX('Справочник клиентов'!A:A;MATCH(1;('Справочник клиентов'!$B$1:$B$25<=A2)*('Справочник клиентов'!$C$2:$C$25>=Отправления!A2);))
или просто
=LOOKUP(2;1/('Справочник клиентов'!$B$2:$B$25<=A2)/('Справочник клиентов'!$C$2:$C$25>=A2);'Справочник клиентов'!$A$2:$A$25)
Прикольно б так, но ошибается и дорабатывать нет желания
=INDEX('Справочник клиентов'!A:A;MATCH(ROUNDDOWN(A2;-6)+1;'Справочник клиентов'!B:B))
Изменено: БМВ - 16.12.2020 20:08:36
По вопросам из тем форума, личку не читаю.
Страницы: 1
Наверх