@AnryDeyvin

Как составить формулу, случайно выбирающую ячейку из диапазона и возвращающую ее значение, но при условии, что это значение больше 0?

Составил я формулу. =INDEX(F:J;ROW(F13);RANDBETWEEN(1;5)) По-русски: =ИНДЕКС(F:J;СТРОКА(F13);СЛУЧМЕЖДУ(1;5)

Суть формулы в следующем. В нужной мне строке эта формула выбирает случайную ячейку в диапазоне (в данном случае это будет строка 13 и диапазон F13:J13) и возвращает мне ее значение. Проблема в том, что эта ячейка может быть пустой и он вернет 0. Как можно модернизировать эту формулу, чтобы она в этом диапазоне выбрала ячейку, в которой обязательно стоит число, а пустые ячейки в выборе не фигурировали?
  • Вопрос задан
  • 87 просмотров
Решения вопроса 1
@dim5x
ЗИ, ИБ.
Так?
=ArrayFormula(INDEX(FILTER(F13:J13; F13:J13<>""); RANDBETWEEN(1;COUNTA(F13:J13))))
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
NikitaDvorets
@NikitaDvorets
Консалтинг / экономика / программирование (excel)
Добрый день.
Вариант 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
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы