Sub mrshkei()
Dim arr, arr2, arr3, i As Long, lr As Long, lr2 As Long
lr = Cells(Rows.Count, 1).End(xlUp).Row
lr2 = Cells(Rows.Count, 11).End(xlUp).Row + 1
Range("K10:Q" & lr2).ClearContents
arr = Range("A10:H" & lr)
arr2 = Range("S2:S6")
ReDim arr3(1 To lr, 1 To 8): k = 1
For i = LBound(arr) To UBound(arr)
If Left(arr(i, 5), 2) = arr2(1, 1) & "." Then
If arr(i, 2) = arr2(2, 1) Then
If arr(i, 6) = arr2(3, 1) Then
arr3(k, 1) = arr(i, 5)
arr3(k, 2) = arr(i, 2)
arr3(k, 3) = arr(i, 6)
arr3(k, 4) = arr(i, 3)
arr3(k, 5) = arr(i, 7)
arr3(k, 6) = arr(i, 8)
k = k + 1
End If
End If
End If
Next i
Range("K10").Resize(lr, 8) = arr3
ActiveWorkbook.Worksheets("1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("1").Sort.SortFields.Add2 Key:=Range("K10").Resize(lr, 1), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("1").Sort
.SetRange Range("K9").Resize(lr + 1, 8)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
Не понятно как задать множество условий... таких как задать 4 а выбрались все 4.1, 4.2. 4.3 4.4. и тд, причем по условию возрастания массы. Для выборки массы формула: =НАИМЕНЬШИЙ(ЕСЛИ(И(Таблица1[Группа]=$S$2;Таблица1[Признак 1]=$S$3;Таблица1[Признак 2]=$S$4);$G$10:$G$32;"");СТРОКА(A1)) не работает, но даже если найти решение и она заработает - непонятно как задать условие описанное выше. Может в выборке необходимо указывать группу х.*.? Такая вот не тривиальная задача со многими условиями.
Подсказали еще один вариант: =ЕСЛИОШИБКА(ИНДЕКС($B$10:$H$32;ПОИСКПОЗ(НАИМЕНЬШИЙ(ЕСЛИ(($B$10:$B$32=$S$3)*($F$10:$F$32=$S$4)*(ЛЕВСИМВ($E$10:$E$32;2)=$S$2);$G$10:$G$32;"");СТРОКА($A1));$G$10:$G$32;);ПОИСКПОЗ(K$9;$B$9:$H$9;));"") ВВодить как формулу массива. Что не работает: - при не заполненном условии Признак 2 не работает; - нельзя задать временной отрезок. Огромное спасибо кто помогал.