Новости:

Теперь на форум можно залогиниться / зарегистрироваться с помощью ВКонтакте. Уже существующие пользователи могут связать свою учетную запись с аккаунтом ВКонтакте одним кликом в профиле пользователя http://forum.msexcel.ru/index.php?action=profile;area=account

Главное меню

Создание массива 1,0 со случайным расположением

Автор Станиславский, 05.01.2016, 14:13

« назад - далее »

Станиславский

Доброго дня, форумчане!
Я как обычно, когда захожу, то с проблемой))
Всех с Новым Годом, побольше интересных задач и их решений :)

Вот собственно задача:
Необходимо создать массив данных, чтобы при указанных двух процентных значениях, некоторое число разбивалось на 1 и 0 в пределах указанного диапазона, который равен некоторому числу.
Пример во вложении. У нас есть 200 машин и мы знаем, что 71% легковые, а 29% соответственно грузовые. Нам необходимо рандомно в строке "Машины" разбить эти 200 штук на 1 и 0 (или "лекг" и "груз"), чтобы в итоге указанные проценты совпадали. В принципе это можно сделать методом тыка вручную, но фишка в том, чтобы менять проценты и распределение 1 и 0 менялось, так как массив может быть и больше.
Вопрос не по теме удален
За помощь буду благодарен за любую!

vikttur

#1
Off:
ЦитироватьЯ как обычно, когда захожу, то с проблемой))
Всех с Новым Годом
Если Вы бухгалтер, не успевший с годовым отчетом, то это ействительно огромная проблема :)

Второй вопрос удален. Для него создайте отдельную тему.

По теме. Со столбца G по GI - так и нужно?
Сообразил: ряд от 1 до 200

Станиславский

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

vikttur

#3
=ЕСЛИ(СЧЁТЕСЛИ($B$3:B3;1)>=$GX$3*$GU$3;0;ЕСЛИ(СЧЁТЕСЛИ($B$3:B3;0)>=$GY$3*$GU$3;1;ЦЕЛОЕ(СЛЧИС()/0,5)))
Знак > на случай, когда одно значение занимает >1% диапазона

Станиславский

Класс! Супер! Спасибо!
Всё в принципе несложно, но от этого и интересно :)
Ещё раз спасибо!
P.S. и маленький вопросик: если у меня три, четыре или больше критериев, то соответственно столько раз я повторяю вторую часть формулы и вместо 1 соответственно 2, 3 и т.д.?

vikttur


Станиславский

да уж...на 6 критериев не хочет(( видать дело в случайном числе в конце...
если есть возможность, подскажите что да куда :)

vikttur

СЛЧИС генерирует действительные значения от 0 до 1 - 0,52365522, 1, 0,86235454...
ЦЕЛОЕ(СЛЧИС()/0,5) - или 0, или 1. Всего два возможных варианта.
Вы хотите 6 значений? Сделайте 6 возможных вариантов.

Станиславский

с ЦЕЛОЕ(СЛЧИС()/0,5) разобрался т.е. формула =ЕСЛИ(СЧЁТЕСЛИ($C$5:C5;6)>=$HJ$5*$GV$5;5;ЕСЛИ(СЧЁТЕСЛИ($C$5:C5;5)>=$HI$5*$GV$5;4;ЕСЛИ(СЧЁТЕСЛИ($C$5:C5;4)>=$HH$5*$GV$5;3;ЕСЛИ(СЧЁТЕСЛИ($C$5:C5;3)>=$HG$5*$GV$5;2;ЕСЛИ(СЧЁТЕСЛИ($C$5:C5;2)>=$HF$5*$GV$5;1;ЕСЛИ(СЧЁТЕСЛИ($C$5:C5;1)>=$HE$5*$GV$5;0;ЦЕЛОЕ(СЛЧИС()/0,1)))))))
считать правильно не будет как её ни крути? Сейчас она даёт два верных варианта..ну оно и понятно теперь почему.
Понимаю, что прозвучит смешно, но что сделать для шести вариантов?  ::)

vikttur

ЦЕЛОЕ(СЛЧИС()/0,5) - сделайте хоть 10 вариантов. Я Вам показал, как. Включайте голову.
Можете вместо этого фрагмента приметь СЛУЧМЕЖДУ

Из мультика "Вовочка в Тридевятом государстве":
- Вы за меня и пальцы загибать будете?
- АГА!!!

Станиславский

про Вовочку намёк понятен ((
но, честно, про шесть вариантов не очень...т.е. у меня итоговое число 200 разбивается на 6, по той же схеме как и на два. Если Вы говорите, что в ЦЕЛОЕ(СЛЧИС()/0,5) возможны только два варианта, то как же их сделать шесть, если мне необходимо, чтобы в массиве шли цифры 0, 1, 2, 3, 4 и 5?

vikttur

ЦитироватьВы говорите, что в ЦЕЛОЕ(СЛЧИС()/0,5) возможны только два варианта
Конечно, в такой записи только два. А если поменять делитель?

Станиславский

хм...я ж вроде сбросил формулу, которая у меня получилась и там делитель поменян на 0,1, но правильных значений по процентам выдаёт всё равно только два - первое и последнее. С делителем то я сразу разобрался, что если его менять то формула начинает работать...я не могу найти косяк, из-за которого формула не разбивает правильно по нужным процентам.

vikttur

#13
Цитироватьхм...я ж вроде сбросил формулу... и там делитель поменян на 0,1
Извините, не видел - в сообщении отображается только начало формулы.
Покажите пример с множеством диапазонов. На примере проверять легче.

Станиславский

пример приложил...там только немного мудрил и сейчас уже вообще ничего не сходится ((