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

Вход

Регистрация

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

 

= Мир MS Excel/Неслучайная СЛЧИС() - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин  
Мир MS Excel » Работа и общение » Мозговой штурм » Неслучайная СЛЧИС() (Генерирование массива чисел с заданным уклоном)
Неслучайная СЛЧИС()
ZORRO2005 Дата: Понедельник, 06.08.2012, 12:46 | Сообщение № 1
Группа: Друзья
Ранг: Обитатель
Сообщений: 382
Репутация: 148 ±
Замечаний: 0% ±

Excel2010
Друзья,
на форуме поднималась тема http://www.excelworld.ru/forum/2-551-1 , где нужно было сгенерировать 20 уникальных чисел от 1 до 20.
_Boroda_ и MCH предложили решения формулой без дополнительных столбцов.

Задача следующая.
Нужно сформировать массив из 20 случайных чисел от 1 до 100,
в котором % чисел от 1 до 19 равен 65-70%(13-14 чисел), от 20 до 89 - 20-25%(4-5 чисел), от 90 до 100 - 5-15%(1-3 числа).
К сообщению приложен файл: 7584487.xls (32.0 Kb)


Сообщение отредактировал ZORRO2005 - Вторник, 07.08.2012, 00:23
 
Ответить
СообщениеДрузья,
на форуме поднималась тема http://www.excelworld.ru/forum/2-551-1 , где нужно было сгенерировать 20 уникальных чисел от 1 до 20.
_Boroda_ и MCH предложили решения формулой без дополнительных столбцов.

Задача следующая.
Нужно сформировать массив из 20 случайных чисел от 1 до 100,
в котором % чисел от 1 до 19 равен 65-70%(13-14 чисел), от 20 до 89 - 20-25%(4-5 чисел), от 90 до 100 - 5-15%(1-3 числа).

Автор - ZORRO2005
Дата добавления - 06.08.2012 в 12:46
Serge_007 Дата: Понедельник, 06.08.2012, 19:57 | Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Серёг, а решение-то есть?
СЛЧИС использовать можно?


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеСерёг, а решение-то есть?
СЛЧИС использовать можно?

Автор - Serge_007
Дата добавления - 06.08.2012 в 19:57
ZORRO2005 Дата: Понедельник, 06.08.2012, 23:57 | Сообщение № 3
Группа: Друзья
Ранг: Обитатель
Сообщений: 382
Репутация: 148 ±
Замечаний: 0% ±

Excel2010
Quote (Serge_007)
Серёг, а решение-то есть? СЛЧИС использовать можно?

Есть решение, но оно не очень красивое.
Используйте СЛЧИС(), СЛУЧМЕЖДУ()...
 
Ответить
Сообщение
Quote (Serge_007)
Серёг, а решение-то есть? СЛЧИС использовать можно?

Есть решение, но оно не очень красивое.
Используйте СЛЧИС(), СЛУЧМЕЖДУ()...

Автор - ZORRO2005
Дата добавления - 06.08.2012 в 23:57
Serge_007 Дата: Вторник, 07.08.2012, 00:06 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 16475
Репутация: 2749 ±
Замечаний: ±

Excel 2016
Я не понимаю как можно получить решение не используя частности...
Не укладывается в голове...
Пересчитывается всё, но диапазоны не определены...


ЮMoney:41001419691823 | WMR:126292472390
 
Ответить
СообщениеЯ не понимаю как можно получить решение не используя частности...
Не укладывается в голове...
Пересчитывается всё, но диапазоны не определены...

Автор - Serge_007
Дата добавления - 07.08.2012 в 00:06
ZORRO2005 Дата: Вторник, 07.08.2012, 00:19 | Сообщение № 5
Группа: Друзья
Ранг: Обитатель
Сообщений: 382
Репутация: 148 ±
Замечаний: 0% ±

Excel2010
Quote (Serge_007)
Я не понимаю как можно получить решение не используя частности...

Используй частности, но чтобы случайные цифры не шли блоками 1-19,20-89,90-100.
Т.е. чтобы в любой ячейке С3:С22 могло появиться любое число от 1 до 100.


Сообщение отредактировал ZORRO2005 - Вторник, 07.08.2012, 00:32
 
Ответить
Сообщение
Quote (Serge_007)
Я не понимаю как можно получить решение не используя частности...

Используй частности, но чтобы случайные цифры не шли блоками 1-19,20-89,90-100.
Т.е. чтобы в любой ячейке С3:С22 могло появиться любое число от 1 до 100.

Автор - ZORRO2005
Дата добавления - 07.08.2012 в 00:19
MCH Дата: Вторник, 07.08.2012, 00:43 | Сообщение № 6
Группа: Админы
Ранг: Старожил
Сообщений: 2003
Репутация: 751 ±
Замечаний: ±

Сергей, числа должны быть уникальными, или возможны повторы?
 
Ответить
СообщениеСергей, числа должны быть уникальными, или возможны повторы?

Автор - MCH
Дата добавления - 07.08.2012 в 00:43
MCH Дата: Вторник, 07.08.2012, 02:01 | Сообщение № 7
Группа: Админы
Ранг: Старожил
Сообщений: 2003
Репутация: 751 ±
Замечаний: ±

Есть решение на 184 символов, уникальность не обеспечивал, использовал СЛУЧМЕЖДУ(1;19);СЛУЧМЕЖДУ(20;89);СЛУЧМЕЖДУ(90;100)
Не понимаю, почему этим нельзя пользоватся?


Сообщение отредактировал MCH - Вторник, 07.08.2012, 07:42
 
Ответить
СообщениеЕсть решение на 184 символов, уникальность не обеспечивал, использовал СЛУЧМЕЖДУ(1;19);СЛУЧМЕЖДУ(20;89);СЛУЧМЕЖДУ(90;100)
Не понимаю, почему этим нельзя пользоватся?

Автор - MCH
Дата добавления - 07.08.2012 в 02:01
ZORRO2005 Дата: Вторник, 07.08.2012, 12:52 | Сообщение № 8
Группа: Друзья
Ранг: Обитатель
Сообщений: 382
Репутация: 148 ±
Замечаний: 0% ±

Excel2010
Quote (MCH)
Сергей, числа должны быть уникальными, или возможны повторы?

Возможны повторы.
Quote (MCH)
Есть решение на 184 символов, уникальность не обеспечивал, использовал СЛУЧМЕЖДУ(1;19);СЛУЧМЕЖДУ(20;89);СЛУЧМЕЖДУ(90;100) Не понимаю, почему этим нельзя пользоватся?

Извиняюсь, пользуйтесь.
 
Ответить
Сообщение
Quote (MCH)
Сергей, числа должны быть уникальными, или возможны повторы?

Возможны повторы.
Quote (MCH)
Есть решение на 184 символов, уникальность не обеспечивал, использовал СЛУЧМЕЖДУ(1;19);СЛУЧМЕЖДУ(20;89);СЛУЧМЕЖДУ(90;100) Не понимаю, почему этим нельзя пользоватся?

Извиняюсь, пользуйтесь.

Автор - ZORRO2005
Дата добавления - 07.08.2012 в 12:52
MCH Дата: Вторник, 07.08.2012, 13:26 | Сообщение № 9
Группа: Админы
Ранг: Старожил
Сообщений: 2003
Репутация: 751 ±
Замечаний: ±

Превое, что пришло в голову:
Code
=ВЫБОР(ПОИСКПОЗ(СЛЧИС();{0;0,7;0,9});СЛУЧМЕЖДУ(1;19);СЛУЧМЕЖДУ(20;89);СЛУЧМЕЖДУ(90;100))

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

Чтобы доработать данную формулу до нужной статистики (13-14 чисел от 1 до 19, 4-5 чисел от 20 до 89, 1-3 числа от 90 до 100) потребовалось дополнительно 96 знаков

Сергей, какой ориентир, нужно еще оптимизировать формулу?
 
Ответить
СообщениеПревое, что пришло в голову:
Code
=ВЫБОР(ПОИСКПОЗ(СЛЧИС();{0;0,7;0,9});СЛУЧМЕЖДУ(1;19);СЛУЧМЕЖДУ(20;89);СЛУЧМЕЖДУ(90;100))

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

Чтобы доработать данную формулу до нужной статистики (13-14 чисел от 1 до 19, 4-5 чисел от 20 до 89, 1-3 числа от 90 до 100) потребовалось дополнительно 96 знаков

Сергей, какой ориентир, нужно еще оптимизировать формулу?

Автор - MCH
Дата добавления - 07.08.2012 в 13:26
ZORRO2005 Дата: Вторник, 07.08.2012, 13:38 | Сообщение № 10
Группа: Друзья
Ранг: Обитатель
Сообщений: 382
Репутация: 148 ±
Замечаний: 0% ±

Excel2010
MCH,
Отлично! То, что нужно.
Я не догадался прикрутить ПОИСКПОЗ.
Вот моя некрасивая формула:
Code
=ВЫБОР(ПРОСМОТР(СТРОКА()-3;{0:14:19};{1:2:3});СЛУЧМЕЖДУ(1;19);СЛУЧМЕЖДУ(20;89);СЛУЧМЕЖДУ(90;100))

Оставалось перемешать данные, но до этого не успел дойти.
 
Ответить
Сообщение MCH,
Отлично! То, что нужно.
Я не догадался прикрутить ПОИСКПОЗ.
Вот моя некрасивая формула:
Code
=ВЫБОР(ПРОСМОТР(СТРОКА()-3;{0:14:19};{1:2:3});СЛУЧМЕЖДУ(1;19);СЛУЧМЕЖДУ(20;89);СЛУЧМЕЖДУ(90;100))

Оставалось перемешать данные, но до этого не успел дойти.

Автор - ZORRO2005
Дата добавления - 07.08.2012 в 13:38
MCH Дата: Вторник, 07.08.2012, 13:50 | Сообщение № 11
Группа: Админы
Ранг: Старожил
Сообщений: 2003
Репутация: 751 ±
Замечаний: ±

Ну тогда выложу и остальную формулу, где четко обеспечивется требуемое кол-во чисел в каждом диапазоне:
Code
=ВЫБОР(ПОИСКПОЗ(СЛЧИС();(13,5-СЧЁТЕСЛИ(C$2:C2;"<20"))/ЧСТРОК(C3:C$22)*{0;1;0}+(18,5-СЧЁТЕСЛИ(C$2:C2;"<90"))/ЧСТРОК(C3:C$22)*{0;0;1});СЛУЧМЕЖДУ(1;19);СЛУЧМЕЖДУ(20;89);СЛУЧМЕЖДУ(90;100))

ЗЫ: в формуле использованы числа 13,5 и 18,5 для того, чтобы была генерация 13-14 и 4-5, если не нужны данные вариации, то можно использовать числа 14 и 18
тогда количество чисел от 1 до 19 будет всегда 14, от 20 до 89 - 4, от 90 до 100 - 2
К сообщению приложен файл: ZORRO2005-RND.xls (37.0 Kb)
 
Ответить
СообщениеНу тогда выложу и остальную формулу, где четко обеспечивется требуемое кол-во чисел в каждом диапазоне:
Code
=ВЫБОР(ПОИСКПОЗ(СЛЧИС();(13,5-СЧЁТЕСЛИ(C$2:C2;"<20"))/ЧСТРОК(C3:C$22)*{0;1;0}+(18,5-СЧЁТЕСЛИ(C$2:C2;"<90"))/ЧСТРОК(C3:C$22)*{0;0;1});СЛУЧМЕЖДУ(1;19);СЛУЧМЕЖДУ(20;89);СЛУЧМЕЖДУ(90;100))

ЗЫ: в формуле использованы числа 13,5 и 18,5 для того, чтобы была генерация 13-14 и 4-5, если не нужны данные вариации, то можно использовать числа 14 и 18
тогда количество чисел от 1 до 19 будет всегда 14, от 20 до 89 - 4, от 90 до 100 - 2

Автор - MCH
Дата добавления - 07.08.2012 в 13:50
ZORRO2005 Дата: Вторник, 07.08.2012, 14:28 | Сообщение № 12
Группа: Друзья
Ранг: Обитатель
Сообщений: 382
Репутация: 148 ±
Замечаний: 0% ±

Excel2010
Круто! Спасибо.
 
Ответить
СообщениеКруто! Спасибо.

Автор - ZORRO2005
Дата добавления - 07.08.2012 в 14:28
MCH Дата: Вторник, 07.08.2012, 17:05 | Сообщение № 13
Группа: Админы
Ранг: Старожил
Сообщений: 2003
Репутация: 751 ±
Замечаний: ±

Можно немного сократить (до 170), вынеся делитель за скобки:
Code
=ВЫБОР(ПОИСКПОЗ(СЛЧИС();((13,5-СЧЁТЕСЛИ(C$2:C2;"<20"))*{0;1;0}+(18,5-СЧЁТЕСЛИ(C$2:C2;"<90"))*{0;0;1})/ЧСТРОК(C3:C$22));СЛУЧМЕЖДУ(1;19);СЛУЧМЕЖДУ(20;89);СЛУЧМЕЖДУ(90;100))
 
Ответить
СообщениеМожно немного сократить (до 170), вынеся делитель за скобки:
Code
=ВЫБОР(ПОИСКПОЗ(СЛЧИС();((13,5-СЧЁТЕСЛИ(C$2:C2;"<20"))*{0;1;0}+(18,5-СЧЁТЕСЛИ(C$2:C2;"<90"))*{0;0;1})/ЧСТРОК(C3:C$22));СЛУЧМЕЖДУ(1;19);СЛУЧМЕЖДУ(20;89);СЛУЧМЕЖДУ(90;100))

Автор - MCH
Дата добавления - 07.08.2012 в 17:05
Мир MS Excel » Работа и общение » Мозговой штурм » Неслучайная СЛЧИС() (Генерирование массива чисел с заданным уклоном)
  • Страница 1 из 1
  • 1
Поиск:

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