|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
05.06.2014, 17:48 | #1 |
Регистрация: 05.06.2014
Сообщений: 5
|
Процент от общего количества
Здравствуйте! Помогите пожалуйста составить формулу.
Имеется отсортированый по убыванию любой список чисел. К примеру 100 90 80 70 60 50 40 30 нужно отметить буквой А те значения (все идет сверху вниз), которые дают 50 % от общего количества В - 40% С - остальные. Спасибо! |
05.06.2014, 20:25 | #2 |
Пользователь
Регистрация: 05.06.2010
Сообщений: 53
|
а макросом подойдет?
Только сразу оговорюсь, что можно все намного проще и красивее, но я только в самом начале познания VBA А так, вроде все работает (только я взяла 15% и 10%) |
05.06.2014, 21:24 | #3 | |
Регистрация: 05.06.2014
Сообщений: 5
|
Цитата:
у вас нет никаких идей на счет этого? спасибо вам большое |
|
05.06.2014, 22:46 | #4 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
А вы покажите на примере, что должно получиться
возьмём числа 4 3 2 1 какие напротив них должны буквы стоять? например, 4+1 дают ровно 50% - их отмечаем буквой А? или отмечаем 3 и 2? а, может, буква А будет только у верхних, начиная с 4, пока не наберется 50%? но что делать в данном случае? 4 мы отметим буквой А, а вот отмечать ли тройку? (ведь с ней, 4+3, это будет уже больше 50%) формулу написать недолго, - лень угадывать, и потом переделывать, если не угадал что вам надо |
05.06.2014, 22:51 | #5 | |
Регистрация: 05.06.2014
Сообщений: 5
|
Цитата:
данный пример для расчета процентов не совсем есть наглядным, так как очень мало значений пишу вам свой пример: 100 90 80 70 60 50 40 30 в списке сумма значений 520. 50 процентов от общей суммы - 260. то есть СВЕРХУ возьмем 100 и 90 (еще 80 уже не влезет, так как будет выше 260) и ставим напротив них А Потом берем следующие по счету (уже кроме 100 и 90) - 40 процентов от 520 - 208. Смотрим - это 80 и 70(без 60, так как в сумме будет больше 208.) - ставим напротив них B Напротив всех остальных - С |
|
05.06.2014, 23:24 | #6 |
Пользователь
Регистрация: 05.06.2010
Сообщений: 53
|
хм, теперь я чего-то не понимаю. напротив 100 и 90 ставим А (сумма 190, меньше 260 и меньше 208- что является 40 %)
напротив 80 и 70 ставим В (сумма =150) почему тогда напротив всех остальных C ведь их сумма >150 (60+50+40+30) или можно использовать только 1 А и 1 В ? |
05.06.2014, 23:31 | #7 | |
Регистрация: 05.06.2014
Сообщений: 5
|
Цитата:
вся загвоздка в этой задачи состоит в том, что проходим мы данные сверху вниз сортированного списка. (сначала сверху откусываем 50 процентов, затем 40 из того что ОСТАЛОСЬ, но тоже в порядке убывания сверху вниз) мы не анализируем вообщем его как целое сразу. берем первое значение сверху - 100, смотрим, входит в интервал 260 (50 %)- ставим А проверяем войдет ли следующее,то есть 100+90=190. подходит.- ставим А проверяем войдет ли следующее,то есть 190+80=270. - и с этого момента проверяем уже на 40 процентов с нуля, но уже без первых двух, которые вошли в А |
|
05.06.2014, 23:42 | #8 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
Цитата:
Код:
Ждём специалистов-формулистов |
|
05.06.2014, 23:51 | #9 | |
Регистрация: 05.06.2014
Сообщений: 5
|
Цитата:
кстати за пару минут до того как вы написали родилась точно такая же идея с накоплением и накоплением процентов. спасибо большое)))) |
|
06.06.2014, 01:58 | #10 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
все оказалось не так просто(((
посмотрите сколько букв В проставит формула... правильно - 4, а надо бы только 2 (согласно пояснений, потому что с математическим понятием "влезет" в интервал или нет - не поспоришь)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
составить программу для нахождения наибольшего общего и наименьшего общего кратного двух натуральных чисел НОК(A,B)=A*B/НОД(A,B) | sisaw | Помощь студентам | 0 | 06.05.2014 20:36 |
Как добавить счет всего общего количества? | Predator199 | PHP | 2 | 29.02.2012 20:12 |
Нахождение наибольшего общего делителяНахождение наибольшего общего делителя | A_Orlov | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 27.04.2010 16:53 |
Подсчет общего количества студентов | NikolayGVB | Microsoft Office Excel | 4 | 19.01.2009 19:10 |
нахождение наибольшего общего делителя и наименьшего общего кратного | made in russia | Помощь студентам | 2 | 21.12.2008 23:36 |