|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
14.01.2009, 14:58 | #41 |
Пользователь
Регистрация: 12.01.2009
Сообщений: 33
|
Зачем мы от номера строки отнимаем 1??
|
14.01.2009, 15:03 | #42 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
Обьясню кусочками (хотя, viter.alex практически сделал это).
Итак формула: {=ЕСЛИ(СТРОКА()-R45C1>R45C[1];"";СМЕЩ(R1C1;НАИМЕНЬШИЙ(ЕСЛИ((СМЕЩ (R1C1;4;16;R44C 1)=13);СТРОКА(СМЕЩ(R1C1;4;16;R44C1) )-1;99);СТРОКА()-R45C1);1))} Эта формула формирует список круглых отличников (отличник в классе один (отличница), поэтому список получился небольшой). итак, приступим СТРОКА()-R45C1дает порядковый номер (ПН) отличника. От номера текущей строки отнимается значение ячейки R45C1 всегда равное 45. Таким образом в 46 строку будет вписан 1 отличник, в 47 - второй, и т.д... ЕСЛИ(СТРОКА()-R45C1>R45C[1];"";...ЕСЛИ проверяет не больше ли ПН общего числа отличников, хранящегося в ячейке R45C[1]. Для всех строк начиная с 47 ЕСЛИ выберет пусто "", что будет в 46 строке - разберем дальше перескакиваем немного внутрь: СМЕЩ(R1C1;4;16;R44C 1) - эта фрагмент возвращает диапазон, в котором находятся результаты подсчетов количества пятерок для каждого ученика. Диапазон количества пятерок (ДК5) постоянно равен R5C17:R31C17. следующая фрагмент: ЕСЛИ((СМЕЩ(R1C1;4;16;R44C 1)=13);СТРОКА(СМЕЩ(R1C1;4;16;R44C1) )-1;99) с учетом введенного ранее сокращения может быть записана так ЕСЛИ((ДК5=13);СТРОКА(ДК5)-1;99)проверяет равна ли каждая ячейку диапазона ДК5 тринадцати. если не равна - будет возвращено число 99, если равно - номер строки, в которой это случилось минус 1. Результатом работы этого ЕСЛИ будет массив {99,99,99,99,99,99,99,99,99,13,99,. .. и еще 16 раз 99} назовем его М. следующий фрагмент НАИМЕНЬШИЙ(ЕСЛИ((СМЕЩ(R1C1;4;16;R44 C 1)=13);СТРОКА(СМЕЩ(R1C1;4;16;R44C1) )-1;99);СТРОКА()-R45C1) с учетом сокращений - НАИМЕНЬШИЙ(М; ПН) тут вроде и обьяснять нечего - выбирает из массива М соответсвенный наименьший. и последнее СМЕЩ(R1C1;НАИМЕНЬШИЙ(ЕСЛИ((СМЕЩ(R1C 1;4;16;R44C 1)=13);СТРОКА(СМЕЩ(R1C1;4;16;R44C1) )-1;99);СТРОКА()-R45C1);1) переписываем как СМЕЩ(R1C1;НАИМЕНЬШИЙ(М;ПН);1)смещаемся от ячейки R1C1 на 13 строк вниз, и одну вправо. отсчитайте и посмотрите кого вы там найдете, конечно Линник Елену. Снова спасибо всем, кто дочитал до сюда. Отдельная благодарность Клубничке за интерес к экселю. И лично Лене Линник - не училась бы она на 5, трудно было бы все обьяснять без конкретного примера. Успехов ей в учебе и огромного счастья в личной жизни!
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
14.01.2009, 15:12 | #43 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
Как раз наоборот. Зачитал справку до дыр, но так и не понял какой элемент эта функция возвращает. Понял, что если вторым аргументом поставить 1, то получим минимальный, а остальное никак.
Лучше день потерять — потом за пять минут долететь!©
|
14.01.2009, 15:28 | #44 |
Новичок
СтарожилДжуниор
Регистрация: 05.02.2008
Сообщений: 9,487
|
НАИМЕНЬШИЙ({10;12;3;5;7;21}; 3) - посортирует элементы по порядку и вернет 3-й в списке, т.е. 7.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
|
14.01.2009, 15:34 | #45 |
Пользователь
Регистрация: 12.01.2009
Сообщений: 33
|
Пойду переваривать
|
15.01.2009, 12:18 | #46 |
Пользователь
Регистрация: 12.01.2009
Сообщений: 33
|
ДА! ДА! ДА! Я это сделала! Перерешала кучу задач, с разными данными, диапазонами и условиями. И у меня все получилось! IGORGO, Вы ГЕНИЙ! Моему счастью нет предела!
А теперь господа, перехожу к макросам |
15.01.2009, 12:23 | #47 |
Пользователь
Регистрация: 12.01.2009
Сообщений: 33
|
EducatedFool, Вы советовали не смотреть макрос, но мне очень интересно как он работает.
Если не трудно, просвятите |
15.01.2009, 13:44 | #48 | |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
Цитата:
Код:
Лучше день потерять — потом за пять минут долететь!©
Последний раз редактировалось viter.alex; 15.01.2009 в 13:45. Причина: Грамматическая ошибка |
|
15.01.2009, 14:01 | #49 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
Ещё более подробные комментарии Вы можете посмотреть во вложенном файле.
Для отображения текста макроса щелкните правой кнопкой на ярлычке листа, и в контекстном меню выберите пункт "Исходный текст" Весь текст комментария в сообщение вместить не удалось - оказалось, присутствует ограничение на количество введённых символов.
__Полезные надстройки для Excel. Парсинг сайтов и файлов.
Макросы любой сложности на заказ. Мониторинг цен конкурентов Последний раз редактировалось EducatedFool; 15.01.2009 в 14:10. |
15.01.2009, 14:12 | #50 | |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
Цитата:
Лучше день потерять — потом за пять минут долететь!©
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
использование процедур и функций! | ...Оленька... | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 24.12.2008 15:33 |
Использование функций Excel | СеВа | Microsoft Office Excel | 0 | 14.03.2008 13:37 |
использование процедур и функций для работы с массивами.....Паскаль.... | КиношкА | Помощь студентам | 6 | 13.01.2008 14:23 |