Привет! В стобце ID номер группы, этот номер уникален. В столбце vol количество предметов, которые принадлежат участнику группы. Как отметить все минимальные значения vol внутри группы? В столбце min хотелось бы видеть букву "m".
Привет! В стобце ID номер группы, этот номер уникален. В столбце vol количество предметов, которые принадлежат участнику группы. Как отметить все минимальные значения vol внутри группы? В столбце min хотелось бы видеть букву "m".HiHiMAX
Nic70y, Не могу прикрутить Вашу формулу к исходному файлу((( и еще нужно учесть погрешность измерений, т.е. если значение других vol в группе будут лежать в пределах 3% от минимального - это тоже отмечается "m" На скрепке часть исходного файла Спасибо за помощь
Nic70y, Не могу прикрутить Вашу формулу к исходному файлу((( и еще нужно учесть погрешность измерений, т.е. если значение других vol в группе будут лежать в пределах 3% от минимального - это тоже отмечается "m" На скрепке часть исходного файла Спасибо за помощьHiHiMAX
тяжеленькая формула будет, если ID идут, как в примере, подряд и знать максимальное число повторов - формулу можно облегчить, изменив диапазон, а может и нет...
тяжеленькая формула будет, если ID идут, как в примере, подряд и знать максимальное число повторов - формулу можно облегчить, изменив диапазон, а может и нет...Nic70y
Nic70y, да ID сгруппированы, данные отсортированы Там порядка 60000 строк, ID повторяться не будет - может стоит ограничить диапазон просмотра данных: +-50 ячеек от текущей?
Nic70y, да ID сгруппированы, данные отсортированы Там порядка 60000 строк, ID повторяться не будет - может стоит ограничить диапазон просмотра данных: +-50 ячеек от текущей?HiHiMAX
Function КакТоТак(Диапазон As Range, Id As Integer, Optional Vol As Long = 2) As Integer 'Диапазон - диапазон, в котором содержатся ID и Vol 'Id - тот ID по которому, собственно и происходит поиск наименьшего значения 'Vol - необязательный, по умолчанию равен 2 - номер столбца в Диапазоне, 'в котором содержатся значения
Dim arr Dim I As Long arr = Диапазон.Value For I = 1 To UBound(arr) If arr(I, 1) = Id Then If КакТоТак = 0 Then КакТоТак = arr(I, Vol) Else _ КакТоТак = Application.WorksheetFunction.Min(КакТоТак, arr(I, Vol)) Next I End Function
[/vba]
Можно так, как вариант [vba]
Код
Function КакТоТак(Диапазон As Range, Id As Integer, Optional Vol As Long = 2) As Integer 'Диапазон - диапазон, в котором содержатся ID и Vol 'Id - тот ID по которому, собственно и происходит поиск наименьшего значения 'Vol - необязательный, по умолчанию равен 2 - номер столбца в Диапазоне, 'в котором содержатся значения
Dim arr Dim I As Long arr = Диапазон.Value For I = 1 To UBound(arr) If arr(I, 1) = Id Then If КакТоТак = 0 Then КакТоТак = arr(I, Vol) Else _ КакТоТак = Application.WorksheetFunction.Min(КакТоТак, arr(I, Vol)) Next I End Function