Вычисление среднего значения по случайным испытаниям / обновлениям в Excel?

1050
PhD

Скажем, у меня есть 1000 ячеек, заполненных случайными значениями, и определенная ячейка, которая вычисляет окончательный ответ на основе этих 1000 значений. Теперь я хочу отслеживать значение ответа в течение 1000 испытаний, т.е. я хочу знать более 1000 испытаний (например, 1000 раз нажать F9 для обновления чисел), каков диапазон / среднее значение / стандартное отклонение ответа, т. Е. Как многое меняется от одного испытания к другому.

Как я могу хранить / фиксировать результаты промежуточных симуляций / испытаний и иметь целостную оценку различной статистики окончательного ответа? Это вообще выполнимо в Excel без плагинов как таковых?

3
Возможно, вы рассматривали возможность иметь 1000 столбцов, каждый из которых содержит 1000 случайных значений, чтобы вы могли генерировать 1000 разных «ответов» одновременно? barry houdini 10 лет назад 5
@ barryhoudini - это много столбцов. Но может просто сработать для быстрой маленькой проверки. Хорошая точка зрения. PhD 10 лет назад 0
@phd Просто любопытно, что я попробовал решение Барри Гудини, мне потребовалось 2 минуты и 30 секунд, чтобы настроить массив размером 1000x1000 с 3 добавленными столбцами для 3 различных функций статистики, вычисляющих каждую строку. Пересчет не займет больше секунды. Интересно, почему вы настаиваете на решении VBA? P. O. 10 лет назад 1
@JoBedard - я не думаю, что настаивал :) Идея Гудини не пришла мне в голову. Спасибо за подтверждение, хотя. Я планировал пойти с этим подходом сам. PhD 10 лет назад 0

1 ответ на вопрос

1
Horn OK Please

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

«Удар F9» (ручной пересчет) используется очень редко, и нет встроенной формулы, которая будет выполнять процедурные действия, когда пользователь пересчитывает вручную. Предполагается, что Excel отлично работает с автоматическим вычислением, что и происходит, когда функции вашего рабочего листа являются идемпотентными, потому что вам нужно войти и изменить некоторые исходные данные (что в конечном итоге сводится к литералам, т. Е. Жестко закодированным числам или строкам). ) для запуска события пересчета.

Однако вы можете написать макрос VBA и связать его с горячей клавишей, которая будет одновременно пересчитывать и принимать старое значение (до пересчета) и сохранять его в постоянно растущем списке (строке или столбце) в другом месте в рабочий лист / рабочая тетрадь. Затем вы можете выполнять стандартные функции рабочего листа для расчета описательной статистики по заполненному массиву. Здесь мы не собираемся разрабатывать для вас заранее готовое решение, поэтому, если у вас возникла конкретная проблема с каким-то кодом, который вы пытаетесь заставить работать, вам, вероятно, следует опубликовать его в StackOverflow, поскольку вопросы программирования не относятся к теме SuperUser и по теме для StackOverflow.

Спасибо за подтверждение этого. Я так и думал, что это просто невозможно! Я думаю, что VBA это тогда :) PhD 10 лет назад 0

Похожие вопросы