|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
29.06.2007, 13:17 | #1 |
Регистрация: 29.06.2007
Сообщений: 8
|
Изменяемый диапазон массива в функциях
Посоветуйте, возможно ли сделать изменяемое "окно" диапазона массива в стандартных функциях, допустим МАКС(A1:A5) - "окно" 5 строк.
Хотелось бы получить что-то типа МАКС(A1:A(C1)), где C1- ссылка на ячейку, которая в числовом виде задает размер "окна" по количеству строк. Простым перетаскиванием формул все без проблем, но когда формулы с "окнами" накладываются на диапазон в тысячи строк и еще необходимо подобрать размер "окна" становится не комфортно. Последний раз редактировалось slba; 29.06.2007 в 13:22. Причина: не корректность формулировки |
29.06.2007, 14:54 | #2 |
Форумчанин
Регистрация: 03.11.2006
Сообщений: 524
|
C1=10
C2=МАКС(СМЕЩ(A1;;;C1)) C3=МАКС(ДВССЫЛ("A1:A"&C1)) C4=МАКС(A1:ИНДЕКС(A:A;C1)) Обратите внимание на то, что первые две функции являются пересчитываемыми. Т.е. если у Вас возникнут проблемы с пересчётом, ибо первые функции будут пересчитываться, например, при изменении значения любой ячейки любого рабочего листа любой открытой книги, то в этом случае, имеет смысл воспользоваться третим вариантом. |
29.06.2007, 16:51 | #3 |
Регистрация: 29.06.2007
Сообщений: 8
|
Огромное спасибо за совет pashulka, для удобства перетаскивания функций и для их взаимной совместимости по адресации ссылок я немного изменил их, надеюсь что правильно:
C1=10 C2=МАКС(СМЕЩ(A1;;;C1)) C3=МАКС(ДВССЫЛ("A1:A"&C1)) C4=МАКС(A1:ИНДЕКС(A:A;C1)) C1=10 C2=МАКС(СМЕЩ(A1;;;$C$1+1)) C3=МАКС(A1:ДВССЫЛ("A"&(СТРОКА(A1)+$ C$1))) C4=МАКС(A1:ИНДЕКС(A:A;СТРОКА(A1)+$C $1)) |
29.06.2007, 17:51 | #4 |
Форумчанин
Регистрация: 03.11.2006
Сообщений: 524
|
В отличии от первоначальных формул, эти представляют уже частный вариант, предназначенный для решения более специфической задачи, причём, для её решения более уместно использовать именно третий вариант, ибо сознательное копирование volatile/пересчитываемых функций, при наличии альтернативного варианта, не есть благо.
|
29.06.2007, 19:10 | #5 |
Регистрация: 29.06.2007
Сообщений: 8
|
Понимаю, еще раз СПАСИБО!
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Код в поцедурах и функциях! | Jondeer | Общие вопросы C/C++ | 1 | 10.06.2008 18:16 |
Как написать в коде чтобы диапазон А копировался как значение в диапазон В. | Dorvir | Microsoft Office Excel | 12 | 23.05.2008 22:11 |
диапазон времени | chekanoff | БД в Delphi | 34 | 02.03.2008 01:28 |
Как указать диапазон чисел? | Inbox | Общие вопросы Delphi | 2 | 29.06.2007 01:21 |
неразрывный диапазон | zetrix | Microsoft Office Excel | 0 | 31.10.2006 07:26 |