![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 23.02.2010
Сообщений: 4
|
![]()
Добрый день, уважаемые форумчане!
В связи с тем, что специфика моей деятельности как программиста связана с совершенно иными средами разработки, не могу одолеть несложную задачу на Excel, которая попалась под руку и которую необходимо срочно решить. Итак, коротко: имеется таблица со значениями от 0 до 10, значений около 25-30. Имеется перменная, равная к примеру 6. Требуется выбрать не более 6 самых высоких значений из списка и вывести наименьшее из них. Разумеется, значения будут меняться, и переменная тоже. На данный момент я добился подсчёта количества повторов каждого из значений, а что делать дальше (каким образом не прибегая к VB в цикле прогнать каждое из значений по убыванию до момента, пока результат вычитания не станет <1, я не знаю как это сделать средствами экселя) Итак, ещё раз алгоритм (с прикреплённым скрином таблицы): ![]() Итак, шаг #1: берём количество повторов первого (самого высокого) значения (равного 10), т.е. 1 повтор. Из нашей переменной (D6=6) вычитаем получившееся кол-во повторов (6-1=5) и проверяем, чтобы это было больше нуля. Если больше, то обновляем (запоминаем) переменную (вместо 6 у нас остаётся 5) и переходим к следующей, точно такой же итерации, но со следующей парой значений из таблицы (9=>4). Получается 5-4=1 что тоже больше 0, запоминаем (обновляем) переменную получившимся значнием и переходим к следующей итерации Далее у нас идёт пара значений 8=>6 Таким образом 1-8 меньше нуля, значит записываем в качестве нужного нам результата (к примеру запишем его в ячейку D2) аргумент последней итерации (9), а аргумент текущей (8) запишем в другую ячейку (к примеру D3). На этом и закончим наш цикл. Возникает вопрос, каким образом реализовать вышеописанный алгоритм? Дело в том, что сам я php программист и схема хранения и доступа к массивам в excel с моим представлением и пониманием не очень стыкуется ![]() В c бы сделал это циклом в 2 строчки, однако как я понял, в excel ни циклов, ни массивов (кроме матричного представления) нету? Буду очень благодарен, если кто-нибудь сможет разъяснить или помочь с реализацией этого чуда. Заранее всем огромное спасибо! |
![]() |
![]() |
![]() |
#2 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
![]()
алгоритм отличный, но его весь полностью заменяет одна функция НАИБОЛЬШИЙ.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
![]() |
![]() |
![]() |
#3 |
Регистрация: 23.02.2010
Сообщений: 4
|
![]()
Огромное спасибо за пример! Пытался что-то соорудить из этой функции раньше, но ничего не вышло. Теперь пытаюсь вникнуть, в чём была моя ошибка. Ещё раз спасибо!
|
![]() |
![]() |
![]() |
#4 |
Регистрация: 23.02.2010
Сообщений: 4
|
![]()
В заключение маленький вопросик по синтаксису
Никак не получается корректно написать формулу =COUNTIF(R[-3]C[-2]:R[22]C[-2];">=8") где вместо >=8 необходимо подставить >= от VALUE(R[-2]C) Подскажите, пожалуйста, как это правильно оформить? Перепробовал все варианты, которые пришли в голову, но каждый раз ошибка синтаксиса |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 13.01.2010
Сообщений: 410
|
![]()
">=8"
заменить например на: ">=" & A1 с синтаксисом ссылок РЦ не знаком к сожалению |
![]() |
![]() |
![]() |
#6 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
![]()
....;">=" & R1C1
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
![]() |
![]() |
![]() |
#7 |
Регистрация: 23.02.2010
Сообщений: 4
|
![]()
Спасибо!!! Получилось
![]() Необходимую задачу удалось выполнить. Огромное спасибо всем за помощь!!! Последний раз редактировалось dark.angel; 23.02.2010 в 23:28. Причина: Дописать благодарность |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
как при импорте из Excel в delphi узнать сколько заполненных строк в книге Excel?чтобы организовать цикл | betirsolt | БД в Delphi | 1 | 17.01.2010 18:51 |
Векторный расчёт в excel | klok | Microsoft Office Excel | 2 | 04.08.2009 22:00 |
Excel, работа с массивами, возможно ли вообще это сделать? | GaSST | Microsoft Office Excel | 5 | 17.06.2009 14:28 |
Excel, работа с массивами, возможно ли вообще это сделать? | GaSST | Помощь студентам | 0 | 17.06.2009 12:11 |
Пожалуйста, подскажите можно ли и как сделать в Excel расчёт процентов? | magi | Microsoft Office Excel | 8 | 28.09.2007 22:48 |