Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Рандомное заполнение нескольких ячеек после изменения одной - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Рандомное заполнение нескольких ячеек после изменения одной
ales_ost Дата: Среда, 06.09.2017, 20:05 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Здравствуйте. Сразу скажу, что в коде я почти 0, а то что нужно - формулами не сделать. Поиск по форуму юзал, но все что находил - не совсем то. Прошу помощи сообщества.
Суть задачи: однократно заполнить некоторое количество ячеек случайными числами (но в некотором диапазоне). Причем как отрицательные, так и положительные числа. Условие по которому происходит заполнение - изменение значения одной из ячеек "ручками". Так же не должно влиять открытие и закрытие файла вплоть до следующего ручного изменения той самой ячейки.
Теперь конкретно по файлу-примеру. Меняем руками значение ячейки E1 на любое другое (в том числе и содержащее текст) - меняются числа в диапазонах C5:C15 и H5:H15 "Значение".
При этом формулы в столбцах E и J "Отклонение" должны "сработать" (если не ошибаюсь - это никуда не денется??). Добавлю, что количество строк в этих "Наборах" может варьироваться. Но это уже "по месту" буду разбираться.
Спасибо.
[p.s.]На самом деле таких "Карточек" надо изготовить целую "гору", поэтому руками вбивать %)[/p.s.]
К сообщению приложен файл: Posled.xls (22.5 Kb)
 
Ответить
СообщениеЗдравствуйте. Сразу скажу, что в коде я почти 0, а то что нужно - формулами не сделать. Поиск по форуму юзал, но все что находил - не совсем то. Прошу помощи сообщества.
Суть задачи: однократно заполнить некоторое количество ячеек случайными числами (но в некотором диапазоне). Причем как отрицательные, так и положительные числа. Условие по которому происходит заполнение - изменение значения одной из ячеек "ручками". Так же не должно влиять открытие и закрытие файла вплоть до следующего ручного изменения той самой ячейки.
Теперь конкретно по файлу-примеру. Меняем руками значение ячейки E1 на любое другое (в том числе и содержащее текст) - меняются числа в диапазонах C5:C15 и H5:H15 "Значение".
При этом формулы в столбцах E и J "Отклонение" должны "сработать" (если не ошибаюсь - это никуда не денется??). Добавлю, что количество строк в этих "Наборах" может варьироваться. Но это уже "по месту" буду разбираться.
Спасибо.
[p.s.]На самом деле таких "Карточек" надо изготовить целую "гору", поэтому руками вбивать %)[/p.s.]

Автор - ales_ost
Дата добавления - 06.09.2017 в 20:05
Pelena Дата: Среда, 06.09.2017, 22:37 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19603
Репутация: 4660 ±
Замечаний: ±

Excel 365 & Mac Excel
в некотором диапазоне

Как определяется диапазон?


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
в некотором диапазоне

Как определяется диапазон?

Автор - Pelena
Дата добавления - 06.09.2017 в 22:37
ales_ost Дата: Четверг, 07.09.2017, 02:38 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Pelena, да вобщем-то разово задается для разового выполнения условия замены ячейки Е1. В примере формулку в эти ячейки прикрутил с использованием функции СЛЧИСЛО, "обвязав" ее фиксированными числами. Получилось, что в одном "Наборе" диапазон от 10.00 до 10.10, в другом -20.00 до -20.10. Только эта функция реагирует на каждый "чих", проделанный с файлом. Не подходит, поэтому и понял что без кода не получится.
UPD:
В примере сам диапазон задан в виде константы (10 и -20) и множителя для случайного числа. В идеале нужно и константу менять в некотором диапазоне и тоже случайно. Например (как в моем файле) хотелось бы чтоб по первому изменению номера "карточки" "набор 1" был в диапазоне от 9.00 до 9.10, другая замена от 11.00 до 11.10, третья от 8.00 до 8.10. Второй "набор" соответственно. То есть целочисленная часть для "набора" при выполнении условия меняется однократно (в небольшом диапазоне, например от 8 до 11), дробная - случайным образом для каждой ячейки во всем "наборе" (в своем диапазоне). Думаю, что конкретные цифры в коде уж осилю задать сам. Ну вообще, разбираться буду, сам уже "подкручивать".

А количество строк в "наборах" для конкретного количества "карточек" будет неизменным. Для следующей партии "карточек" полезу в код... Полагаю, что так проще, чем еще учитывать изменение количества строк сразу в коде. Да и начинать разбираться надо с чего попроще.


Сообщение отредактировал ales_ost - Четверг, 07.09.2017, 04:45
 
Ответить
СообщениеPelena, да вобщем-то разово задается для разового выполнения условия замены ячейки Е1. В примере формулку в эти ячейки прикрутил с использованием функции СЛЧИСЛО, "обвязав" ее фиксированными числами. Получилось, что в одном "Наборе" диапазон от 10.00 до 10.10, в другом -20.00 до -20.10. Только эта функция реагирует на каждый "чих", проделанный с файлом. Не подходит, поэтому и понял что без кода не получится.
UPD:
В примере сам диапазон задан в виде константы (10 и -20) и множителя для случайного числа. В идеале нужно и константу менять в некотором диапазоне и тоже случайно. Например (как в моем файле) хотелось бы чтоб по первому изменению номера "карточки" "набор 1" был в диапазоне от 9.00 до 9.10, другая замена от 11.00 до 11.10, третья от 8.00 до 8.10. Второй "набор" соответственно. То есть целочисленная часть для "набора" при выполнении условия меняется однократно (в небольшом диапазоне, например от 8 до 11), дробная - случайным образом для каждой ячейки во всем "наборе" (в своем диапазоне). Думаю, что конкретные цифры в коде уж осилю задать сам. Ну вообще, разбираться буду, сам уже "подкручивать".

А количество строк в "наборах" для конкретного количества "карточек" будет неизменным. Для следующей партии "карточек" полезу в код... Полагаю, что так проще, чем еще учитывать изменение количества строк сразу в коде. Да и начинать разбираться надо с чего попроще.

Автор - ales_ost
Дата добавления - 07.09.2017 в 02:38
sboy Дата: Четверг, 07.09.2017, 13:08 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
Добрый день.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
Dim arr1(1 To 11)
Dim arr2(1 To 11)
If Target.Address <> "$E$1" Then Exit Sub
Set rR = Range("C5:C15")
r1 = WorksheetFunction.RandBetween(8, 11)
Do
r2 = WorksheetFunction.RandBetween(8, 11)
Loop Until r1 <> r2
For i = 1 To 11
arr1(i) = r1 + Rnd / 10 + 0.01
arr2(i) = r2 + Rnd / 10 + 0.01
Next i
rR.Value = Application.Transpose(arr1)
rR.Offset(0, 1).Value = r1
rR.Offset(0, 5).Value = Application.Transpose(arr2)
rR.Offset(0, 6).Value = r2
End Sub
[/vba]
К сообщению приложен файл: 0084030.xls (37.0 Kb)


Яндекс: 410016850021169
 
Ответить
СообщениеДобрый день.
[vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range)
Dim arr1(1 To 11)
Dim arr2(1 To 11)
If Target.Address <> "$E$1" Then Exit Sub
Set rR = Range("C5:C15")
r1 = WorksheetFunction.RandBetween(8, 11)
Do
r2 = WorksheetFunction.RandBetween(8, 11)
Loop Until r1 <> r2
For i = 1 To 11
arr1(i) = r1 + Rnd / 10 + 0.01
arr2(i) = r2 + Rnd / 10 + 0.01
Next i
rR.Value = Application.Transpose(arr1)
rR.Offset(0, 1).Value = r1
rR.Offset(0, 5).Value = Application.Transpose(arr2)
rR.Offset(0, 6).Value = r2
End Sub
[/vba]

Автор - sboy
Дата добавления - 07.09.2017 в 13:08
ales_ost Дата: Четверг, 07.09.2017, 17:02 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
sboy, благодарю. Начало есть, от чего оттолкнутся. Видимо я не совсем корректно расписал алгоритм, но уже разобрался. Оффсеты по r1 (0,1) и r2 (0,6) именно в таком виде не требовались. Буду дальше прикручивать уже по месту. Плюсую.
По ходу дела скорей всего будут еще вопросы. Будем посмотреть :)
 
Ответить
Сообщениеsboy, благодарю. Начало есть, от чего оттолкнутся. Видимо я не совсем корректно расписал алгоритм, но уже разобрался. Оффсеты по r1 (0,1) и r2 (0,6) именно в таком виде не требовались. Буду дальше прикручивать уже по месту. Плюсую.
По ходу дела скорей всего будут еще вопросы. Будем посмотреть :)

Автор - ales_ost
Дата добавления - 07.09.2017 в 17:02
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2026 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!