1

Я ищу способ суммировать результат вычисления, выполненного заданное, сколь угодно большое количество раз.

Предположим, у меня есть 15 000 клиентов, каждый из которых потратит от 100 до 200 долларов, и я хочу подсчитать общий доход.

Поэтому я хочу вычислить Int(Randbetween(100,200)) 15 000 раз и суммировать результаты.

По разным причинам я не хочу делать это:- повторяя формулу в 15 000 ячеек - используя циклическую ссылку и встроенную итерацию Excel - используя код VBA - используя надстройку Монте-Карло

У меня есть предчувствие, что есть простое и элегантное решение, но оно ускользает от меня.

2 ответа2

1

Для того чтобы этот расчет работал в одной ячейке, в произвольно заполненный массив нужно было вводить разное число в каждой строке. Из того, что я могу сказать, Excel не работает таким образом. Формула RANDBETWEEN() использует один и тот же номер в каждой строке массива.

Например:

Я ввел приведенную ниже формулу в ячейку на пустом листе.

= СЛУЧМЕЖДУ (100200)& A1:A10

Я выделил всю формулу и нажал F9 для вычисления в строке формул. Excel вернул:

{ "180", "180", "180", "180", "180", "180", "180", "180", "180", "180"}

Если есть формула, которая заставляет Excel генерировать новое число с каждой строкой, это можно использовать.

0

Предполагая, что столбец A вашего листа не содержит никаких данных, вы можете использовать следующую формулу для вычисления суммы 15 000 случайных чисел от 100 до 200.

Поместите эту формулу в ячейку B1

=SUMPRODUCT(($A1:$A15000="")*RANDBETWEEN(100,200))

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

Дополнение:

В качестве альтернативы, это может показаться лучшим решением с точки зрения манипулирования вашими переменными:

SUMPRODUCT((OFFSET($A$1,,,15000)="")*RANDBETWEEN(100,200))

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