Как составить формулу, случайно выбирающую ячейку из диапазона и возвращающую ее значение, но при условии, что это значение больше 0?
Составил я формулу. =INDEX(F:J;ROW(F13);RANDBETWEEN(1;5)) По-русски: =ИНДЕКС(F:J;СТРОКА(F13);СЛУЧМЕЖДУ(1;5)
Суть формулы в следующем. В нужной мне строке эта формула выбирает случайную ячейку в диапазоне (в данном случае это будет строка 13 и диапазон F13:J13) и возвращает мне ее значение. Проблема в том, что эта ячейка может быть пустой и он вернет 0. Как можно модернизировать эту формулу, чтобы она в этом диапазоне выбрала ячейку, в которой обязательно стоит число, а пустые ячейки в выборе не фигурировали?
Добрый день.
Вариант UDF вместо формулы.
Public Function ExtractRandom(ByRef TargetRange As Excel.Range)
Dim rCell As Range
Randomize
ExtractRandom = TargetRange.Cells(Int(Rnd * TargetRange.Count) + 1)
If ExtractRandom = 0 Then
For Each rCell In TargetRange.Cells
If rCell.Value <> 0 Then
ExtractRandom = rCell.Value
Exit Function
Else
End If
Next rCell
Else
End If
End Function