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

Вход

Регистрация

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

 

= Мир MS Excel/Заполнение 15 ячеек в 30 в случайном порядке - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Заполнение 15 ячеек в 30 в случайном порядке (Формулы/Formulas)
Заполнение 15 ячеек в 30 в случайном порядке
ChicherinAV Дата: Среда, 09.10.2019, 15:40 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 1
Репутация: 0 ±
Замечаний: 0% ±

Excel 2016
Добрый день.

Необходимо заполнить в случайном порядке 15 ячеек из 30.

Пример прикрепил
К сообщению приложен файл: _1.xls (68.0 Kb)
 
Ответить
СообщениеДобрый день.

Необходимо заполнить в случайном порядке 15 ячеек из 30.

Пример прикрепил

Автор - ChicherinAV
Дата добавления - 09.10.2019 в 15:40
Светлый Дата: Среда, 09.10.2019, 21:08 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1823
Репутация: 507 ±
Замечаний: 0% ±

Excel 2013, 2016
Добрый вечер!
Пришлось вставить столбец C для формирования случайной последовательности:
Код
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПСТР(ПОВТОР(1111100;5);3;31);1;0;СЛУЧМЕЖДУ(1;23));1;0;СЛУЧМЕЖДУ(1;22));1;0;СЛУЧМЕЖДУ(1;21));1;0;СЛУЧМЕЖДУ(1;20));1;0;СЛУЧМЕЖДУ(1;19));1;0;СЛУЧМЕЖДУ(1;18));1;0;СЛУЧМЕЖДУ(1;17));1;0;СЛУЧМЕЖДУ(1;16))
и для клеток формула:
Код
=--ПСТР($C4;СТОЛБЕЦ(A4);1)
*Или так:
Код
=--ПСТР($C4;D$3;1)
**Можно без дополнительного столбца сделать, но тогда придётся массивную формулу применить для массива ячеек. Вся строка.
Таблица внизу. Файл перезалил.
К сообщению приложен файл: _1-3.xlsx (12.6 Kb)


Программировать проще, чем писать стихи.

Сообщение отредактировал Светлый - Среда, 09.10.2019, 22:14
 
Ответить
СообщениеДобрый вечер!
Пришлось вставить столбец C для формирования случайной последовательности:
Код
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПСТР(ПОВТОР(1111100;5);3;31);1;0;СЛУЧМЕЖДУ(1;23));1;0;СЛУЧМЕЖДУ(1;22));1;0;СЛУЧМЕЖДУ(1;21));1;0;СЛУЧМЕЖДУ(1;20));1;0;СЛУЧМЕЖДУ(1;19));1;0;СЛУЧМЕЖДУ(1;18));1;0;СЛУЧМЕЖДУ(1;17));1;0;СЛУЧМЕЖДУ(1;16))
и для клеток формула:
Код
=--ПСТР($C4;СТОЛБЕЦ(A4);1)
*Или так:
Код
=--ПСТР($C4;D$3;1)
**Можно без дополнительного столбца сделать, но тогда придётся массивную формулу применить для массива ячеек. Вся строка.
Таблица внизу. Файл перезалил.

Автор - Светлый
Дата добавления - 09.10.2019 в 21:08
bmv98rus Дата: Четверг, 10.10.2019, 07:49 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4098
Репутация: 766 ±
Замечаний: 0% ±

Excel 2013/2016
Светлый, Мне кажется можно применить вероятность и исходя из того сколько осталось их 15 по отношению к текущей ячейки и правее, просто генерить случайное значение, но это вопрос уже к ТС
ChicherinAV, смысл такой случайной таблички, если при пересчете она постоянно меняется.


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
СообщениеСветлый, Мне кажется можно применить вероятность и исходя из того сколько осталось их 15 по отношению к текущей ячейки и правее, просто генерить случайное значение, но это вопрос уже к ТС
ChicherinAV, смысл такой случайной таблички, если при пересчете она постоянно меняется.

Автор - bmv98rus
Дата добавления - 10.10.2019 в 07:49
Светлый Дата: Четверг, 10.10.2019, 19:16 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1823
Репутация: 507 ±
Замечаний: 0% ±

Excel 2013, 2016
просто генерить случайное значение
Флаг в руки. У меня не получилось. Количество случайно гуляет. Случайно надо генерить не значение 0/1, их количество может быть случайным, а расположение 0 или 1, количество определено. Как у меня.


Программировать проще, чем писать стихи.
 
Ответить
Сообщение
просто генерить случайное значение
Флаг в руки. У меня не получилось. Количество случайно гуляет. Случайно надо генерить не значение 0/1, их количество может быть случайным, а расположение 0 или 1, количество определено. Как у меня.

Автор - Светлый
Дата добавления - 10.10.2019 в 19:16
Gustav Дата: Четверг, 10.10.2019, 20:38 | Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2697
Репутация: 1123 ±
Замечаний: 0% ±

начинал с Excel 4.0, видел 2.1
[offtop]Не могу пройти мимо и не поделиться тем, как красиво решение этой задачки выглядит в Таблицах Google. Если дойдете до них, то в ячейку A1 там введите формулу (можно протянуть и ниже):
[vba]
Код
=ArrayFormula(TRANSPOSE(IF(ISNA(MATCH(ROW($1:$31);ARRAY_CONSTRAIN(SORT({ROW($1:$31)\RANDARRAY(31;1)};2;);15;1);));"";1)))
[/vba]
и ловите ровно 15 единиц в каждой строке с колонки A по колонку AE (31 ячейка)


МОИ: Ник, Tip box: 41001663842605
 
Ответить
Сообщение[offtop]Не могу пройти мимо и не поделиться тем, как красиво решение этой задачки выглядит в Таблицах Google. Если дойдете до них, то в ячейку A1 там введите формулу (можно протянуть и ниже):
[vba]
Код
=ArrayFormula(TRANSPOSE(IF(ISNA(MATCH(ROW($1:$31);ARRAY_CONSTRAIN(SORT({ROW($1:$31)\RANDARRAY(31;1)};2;);15;1);));"";1)))
[/vba]
и ловите ровно 15 единиц в каждой строке с колонки A по колонку AE (31 ячейка)

Автор - Gustav
Дата добавления - 10.10.2019 в 20:38
bmv98rus Дата: Четверг, 10.10.2019, 22:45 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4098
Репутация: 766 ±
Замечаний: 0% ±

Excel 2013/2016
Цитата Светлый, 10.10.2019 в 19:16, в сообщении № 4 ()
Флаг в руки.
прозвучало угрожающе
Код
=IF(AND(RAND()<=(15-SUM($B4:B4))/NETWORKDAYS.INTL(--(C$3&" "&$L$1);EOMONTH(--(1&" "&$L$1);0));WEEKDAY(--(C$3&" "&$L$1);2)<6);1;"")
К сообщению приложен файл: Copy_of_1181.xlsx (12.7 Kb)


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
Сообщение
Цитата Светлый, 10.10.2019 в 19:16, в сообщении № 4 ()
Флаг в руки.
прозвучало угрожающе
Код
=IF(AND(RAND()<=(15-SUM($B4:B4))/NETWORKDAYS.INTL(--(C$3&" "&$L$1);EOMONTH(--(1&" "&$L$1);0));WEEKDAY(--(C$3&" "&$L$1);2)<6);1;"")

Автор - bmv98rus
Дата добавления - 10.10.2019 в 22:45
Светлый Дата: Пятница, 11.10.2019, 06:51 | Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1823
Репутация: 507 ±
Замечаний: 0% ±

Excel 2013, 2016
прозвучало угрожающе
Ничего угрожающего. Вижу: гордо пронёс знамя настоящего программиста (формулиста). Есть, чему мне поучиться. Отличный подход.
Цитата Светлый, 10.10.2019 в 19:16, в сообщении № 4 ()
Случайно надо генерить не значение 0/1, их количество может быть случайным, а расположение 0 или 1
Был неправ. Так тоже можно.


Программировать проще, чем писать стихи.
 
Ответить
Сообщение
прозвучало угрожающе
Ничего угрожающего. Вижу: гордо пронёс знамя настоящего программиста (формулиста). Есть, чему мне поучиться. Отличный подход.
Цитата Светлый, 10.10.2019 в 19:16, в сообщении № 4 ()
Случайно надо генерить не значение 0/1, их количество может быть случайным, а расположение 0 или 1
Был неправ. Так тоже можно.

Автор - Светлый
Дата добавления - 11.10.2019 в 06:51
bmv98rus Дата: Пятница, 11.10.2019, 07:59 | Сообщение № 8
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4098
Репутация: 766 ±
Замечаний: 0% ±

Excel 2013/2016
Светлый, ну я ж тоже пошутил. Просто обычно выражение имеет негативную окраску.

Цитата Светлый, 11.10.2019 в 06:51, в сообщении № 7 ()
программиста (формулиста).
тут скорее отголосок математика

Для потомков, формула проста до безобразия, если откинуть часть , которая делает расчет дней до конца месяца и не выходной ли текущий день, да еще с учетом завсисмости от месяца и года в L1 то:
для первого дня например вероятность того что день нужно пометить 15/23 (23 - это рабочие дни) генерим случайное число от 0 до 1 и если оно меньше частного, то 1, нет 0. Для второго , вероятность будет или 15/22 или 14/22 … в зависимости от предыдущего результата. Числитель это сумма единиц до, знаменатель - сколько отсалось ячеек(дней) в которых можно разместить. Вот и все.


Замечательный Временно просто медведь , процентов на 20.
 
Ответить
СообщениеСветлый, ну я ж тоже пошутил. Просто обычно выражение имеет негативную окраску.

Цитата Светлый, 11.10.2019 в 06:51, в сообщении № 7 ()
программиста (формулиста).
тут скорее отголосок математика

Для потомков, формула проста до безобразия, если откинуть часть , которая делает расчет дней до конца месяца и не выходной ли текущий день, да еще с учетом завсисмости от месяца и года в L1 то:
для первого дня например вероятность того что день нужно пометить 15/23 (23 - это рабочие дни) генерим случайное число от 0 до 1 и если оно меньше частного, то 1, нет 0. Для второго , вероятность будет или 15/22 или 14/22 … в зависимости от предыдущего результата. Числитель это сумма единиц до, знаменатель - сколько отсалось ячеек(дней) в которых можно разместить. Вот и все.

Автор - bmv98rus
Дата добавления - 11.10.2019 в 07:59
MCH Дата: Суббота, 12.10.2019, 18:18 | Сообщение № 9
Группа: Админы
Ранг: Старожил
Сообщений: 2002
Репутация: 751 ±
Замечаний: ±

а я бы так сделал - с доп. строкой в которой указывается рабочие дни
К сообщению приложен файл: RndNum.xls (39.5 Kb)
 
Ответить
Сообщениеа я бы так сделал - с доп. строкой в которой указывается рабочие дни

Автор - MCH
Дата добавления - 12.10.2019 в 18:18
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Заполнение 15 ячеек в 30 в случайном порядке (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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