Выполнить расчет n раз и просуммировать результаты (без VBA)

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

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

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

по разным причинам я не хочу этого:
- повторение формулы в 15000 клеток
- использование круговой ссылки и встроенная итерация Excel
- использование кода VBA
- использование надстройки Monte Carlo

Мне кажется, есть простое и элегантное решение, но оно ускользает от меня.

13
задан TvG
18.03.2023 3:24 Количество просмотров материала 2799
Распечатать страницу

2 ответа

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

например:

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

=RANDBETWEEN (100,200)&A1:A10

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

{"180";"180";"180";"180";"180";"180";"180";"180";"180";"180"}

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

1
отвечен Nick 2023-03-19 11:12

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

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

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

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

дополнение:

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

SUMPRODUCT((OFFSET($A,,,15000)="")*RANDBETWEEN(100,200))
0
отвечен CallumDA 2023-03-19 13:29

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх