У меня есть диапазон с именем 'select', который содержит случайные числа =ROUND(RAND()*8+0.5,0) - они представляют 8 человек. В другом месте я использую следующую формулу для случайного выбора из этих случайных чисел.

INDIRECT(ADDRESS(RANDBETWEEN(ROW(select),ROW(select)+ROWS(select)-1),RANDBETWEEN(COLUMN(select),COLUMN(select)+COLUMNS(select)-1)))

Это прекрасно работает только в листе «выберите» был определен в. Это не будет работать на других листах в книге.«Выбор» установлен для использования в рабочей книге. Что мне не хватает?

1 ответ1

0

Вы звоните ADDRESS(n, m) , где n - (случайный) номер строки, а m - номер столбца.  Функция ADDRESS() видит только эти два числа; он не видит, что они идут от ROW(select) и COLUMN(select) ; поэтому он просто генерирует адресную строку, например, $Q$42 ; он не знает, как квалифицировать его с листом, где находится select .  Вам нужно изменить свой ADDRESS звонок на что-то вроде

ADDRESS((row_number), (column_number),,, (sheet_name))

например,

ADDRESS(RANDBETWEEN(ROW(select),ROW(select)+ROWS(select)-1),RANDBETWEEN(COLUMN(select),COLUMN(select)+COLUMNS(select)-1),,, "Sheet2")

если select на Sheet2 .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .