Dynami c Dice Roller Spreadsheet с использованием ArrayFormula - PullRequest
1 голос
/ 20 марта 2020

Я делаю инструмент для ролика игры в кости, в котором пользователь может отрегулировать как количество сторон на d ie, так и количество брошенных костей.

Для этого у меня есть пользователь, указывающий количество сторон на кости в ячейке B2, и количество кубиков, чтобы бросить в B3.

Затем я использую

=IF(ISNUMBER(E2),SEQUENCE(B3,1,1,1),"-")

, чтобы создать ряд чисел в столбце E, равный числу играющих в кости Рядом с этим столбцом я использую

=IF(ISNUMBER(D2:D),RANDBETWEEN(1,$B$2),"x")

последовательно, чтобы получить выбор случайных чисел.

Это прекрасно работает. Тем не менее, я хочу знать, может ли кто-то показать мне, как они могут выполнить то же самое с помощью ArrayFormula sh.

Когда я пытаюсь применить ARRAYFORMULA к формуле, я просто получаю столбец с одинаковыми числами.

Мне кажется, что моя задача может быть решена с использованием некоторой комбинации RANDBETWEEN и RANDARRAY, но у меня возникают проблемы с выяснением, как это сделать.

Редактировать: Вот ссылка на текущую электронную таблицу Dice Roller

1 Ответ

0 голосов
/ 20 марта 2020

попробовать:

=ARRAYFORMULA(INDEX(SORT(ROW(INDIRECT("1:"&B1)), 
 RANDBETWEEN(ROW(INDIRECT("1:"&B1))^0, 9^9), 0), 1, 1))

0


короче:

=INDEX(SORT(ROW(INDIRECT("1:"&B1)), 
 RANDBETWEEN(ROW(INDIRECT("1:"&B1))^0, 9^9), ), 1, )

или :

=INDEX(SORT(ROW(INDIRECT("1:"&B1)), RANDARRAY(B1), ), 1, )
...