Как использовать RANDBETWEEN () x раз в одной формуле?

0

Я хотел бы сделать формулу, которая может по существу вычислить средний результат броска костей, подумайте о Dungeons and Dragons.

Я хочу использовать одну формулу для расчета любого возможного броска, используя каждое число, как при вводе. Если я хочу вычислить бросок 1d3 + 2, я могу использовать = RANDBETWEEN (1,3) +2, но как я могу вычислить бросок 2d3 без необходимости редактировать формулу? Как мне выполнить RANDBETWEEN () произвольное количество раз в пределах одной формулы?

План состоит в том, чтобы иметь возможность использовать это для, возможно, сотен и тысяч рулонов, поэтому я хотел бы избежать заполнения строк и рядов формулами, я планирую использовать разные рулоны в качестве строк и несколько разных возможностей в качестве столбцов, поэтому мне также хотелось бы чтобы сэкономить место. Вот то, что у меня есть, но, как вы можете видеть, формулы для каждого броска будет недостаточно для более чем одной кости.

Я готов принять ответ «нет», я мог бы создать решение в VBA, если бы мне пришлось, но я хотел бы знать, может ли Excel справиться с этим для простоты.

Bazul
источник
Вы в порядке с 3 записи в отдельных клетках? Один для количества игральных костей, количества сторон и сложения?
Скотт
Я, это то, что у меня есть до сих пор.
Базул

Ответы:

2

Сначала вы захотите создать таблицу с указанным количеством игральных костей. Таким образом, в A6 введите следующую формулу и скопируйте столько раз, сколько у вас будет общего количества искомых костей:

=IF(ROW(1:1)<=$A$2,ROW(1:1),"")

Это будет относиться к A2, где я поставил желаемое количество кубиков.

Затем в B6 положите это и скопируйте:

=IF(A6<>"",RANDBETWEEN(1,$B$2),"")

Это создаст случайный «бросок» этих костей. 1 ряд для каждой кости. В2 содержит количество сторон.

Затем суммируйте и добавьте константу с помощью:

=SUM($B$6:$B$1000)+$C$2

введите описание изображения здесь


Чтобы сделать это в одной ячейке, используйте эту формулу массива:

=SUM(RANDBETWEEN(1,(ROW(INDEX($A:$A,1):INDEX($A:$A,$A2))<=$A2)*$B2))+$C2

Будучи формулой массива, она должна быть подтверждена с помощью Ctrl-Shift-Enter вместо Enter при выходе из режима редактирования.

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

введите описание изображения здесь

Скотт Крейнер
источник
Спасибо Скотт, но я должен был быть более ясным с моим первоначальным вопросом. Я хотел бы знать, есть ли способ использовать RANDBETWEEN () несколько раз в одной ячейке, исходя из предположения, что я не знаю, сколько может потребоваться бросков, и не могу зарезервировать бесконечное количество ячеек для бросков костей , Я добавил еще немного информации к вопросу. «Это невозможно» - приемлемый ответ.
Базул
Возможно, я неправильно понимаю, но звучит так, будто вы хотите смоделировать сотни или тысячи случайных бросков костей, чтобы найти средний результат. Если кости являются «справедливыми», среднее значение определяется количеством сторон и количеством игральных костей. На самом деле, в Интернете есть удобный калькулятор . Может быть, это будет делать то, что вы хотите?
Bandersnatch
@ Базул см редактировать.
Скотт
Благодаря Скотту, это идеальное решение, оно позволяет мне сравнивать множество разных ситуаций и со многими точками данных: i.imgur.com/LmHHqL4.jpg . @Bandersnatch Я знаю, что они доступны, и я сделал свой собственный с помощью других средств, но это оказалось специфическим для Excel. Наличие всех данных, таблиц и расчетов в Excel значительно упрощает задачу.
Базул