Если коротко изъяснить суть задачи, то получается, у меня на трех листах номера с разными сериями 2568 и 2622, мне нужно, чтобы выбирался наибольший номер из первой серии?
Так у Вас вон формулы в файле работают ... или что-то не так? если не так..то наверное нужно описать задачу, показать в файле ручками желаемый результат
Советую в несколько столбцов разнести с помощью формул ЛЕВСИМВ и ПРАВСИМВ первые 4 цифры. В пятом столбце ПРОИЗВЕДЕНИЕ всех четырех значений. КОРЕНЬ и произведения этих четырех даст РАВЕНСТВО ячейки с первой цифрой. Далее искать НАИБОЛЬШИЙ с условием ЕСЛИ (итог корня=первой цифре). Если напрячься малость, то можно объединить это все в одну длинную формулу.
, а как понять кто из них первая, а кто вторая или последующая серия? та что находится на первом листе? или так что меньше по порядку или как?
Код
Sub mrshkei()
Dim arr, MX As Double, MN As Double, sh As Worksheet, lr As Long, i As Long
x = 99999: MX = 0: XX = "": MN = 9999: XXX = ""
For Each sh In Worksheets
With sh
lr = .Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To lr
If CLng(Left(.Cells(i, 1), 4)) < x Then x = CLng(Left(.Cells(i, 1), 4))
Next i
End With
Next sh
For Each sh In Worksheets
With sh
lr = .Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To lr
If CLng(Left(.Cells(i, 1), 4)) = x Then
If MX <= CLng(Right(.Cells(i, 1), 3)) Then: MX = CLng(Right(.Cells(i, 1), 3)): XX = .Cells(i, 1)
If MN >= CLng(Right(.Cells(i, 1), 3)) Then: MN = CLng(Right(.Cells(i, 1), 3)): XXX = .Cells(i, 1)
End If
Next i
End With
Next sh
MsgBox "MINIMUM= " & XXX & vbLf & "Maximum= " & XX
End Sub
Действия похожие. Только ЛЕВСИМВ на четыре знака. А после наибольший. Если среди одинаковой серии НАИБОЛЬШИЙ по последним цифрам, то добавьте еще столбец ПРАВСИМВ на остаток артикула. Далее с ЕСЛИ. Можно использовать НАИБОЛЬШИЙ с условием ЕСЛИ, то СТРОКА. Точно я так и не понял описания задания
, первая серия, это та которая в начале. В данном случае первая это 2568. , допустим если в первом листе разные серии, то первая будет которая стоит выше. Аналогично и вдругих листах
, А можно подобрать такую формулу, допустим формула =ЛЕВСИМВ(МИН(Лист1:Лист3!A1:A10);4), дает нам серию 2568, далее используя эту серию найти максимальное число с этой серией?
вариант на pq - любые 4-значные серии из всех листов файла
Код
let
a = Table.Combine(Excel.Workbook(Web.Contents("https://www.planetaexcel.ru/bitrix/components/bitrix/forum.interface/show_file.php?fid=470007&action=download"))[Data])[[Column1]],
b = Table.AddColumn(a, "q", each Text.Start(Text.From([Column1]), 4)),
c = Table.Group(b, {"q"}, {"w", each List.Sort(_[Column1], Order.Descending){0}})
in
c