Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Подстановка значения по двум условиям
 
Добрый вечер, друзья

Помогите пож-та решить задачку посредством формулы массива: необходимо подставить значение из строки 4, только в те ячейки (> Начало = строка 2) * (< Конец = (строка 2+строка3)).

Сравнение идет по оси времени - колонка D.
Пример с комментариями приложил. Для ориентира решил вручную (см. желтые ячейки как должно быть)

Заранее большое спасибо.
Изменено: Pavel.Nev - 1 Мар 2017 21:57:46
 
а если без формулы массива -  подойдет?
 
Убей бог, я не знаю как впихнуть массив если он тут ненужен.
Код
=IF(AND($D5>=E$2;$D5<=E$2+E$3);E$4;"")
Изменено: БМВ - 1 Мар 2017 22:16:38
 
Vik_tor и БМВ, таким образом я сам решил ;) Объясняю: все дело в том что кол-во строк может быть>10000, и кол-во столбцов 100. При исп. обычной формулы начинаются тормоза. Массив быстрее считает
 
Цитата
Pavel.Nev написал:
кол-во строк может быть>10000, и кол-во столбцов 100
Думаю, при таком количестве ячеек нужно не формулами, а макросом заполнять.
 
Цитата
Pavel.Nev написал:
Массив быстрее считает
то есть простейшая операция выполняется медленее, чем  операции с масивами?!!! 8-0
Вы уверены, что правильно понимаете, что подразумевается под формулой массива в Excel?
Ну массив так массив. ввести как формулу массива
Код
=IF(($D5>=E$2)*($D5<=E$2+E$3);E$4;"")
;)
 
Цитата
Юрий М написал:
Думаю, при таком количестве ячеек нужно не формулами, а макросом заполнять.
Юрий, сможете помочь? Буду премного благодарен.
 
Цитата
БМВ написал:
Вы уверены, что правильно понимаете, что подразумевается под формулой массива в Excel?
БМВ, спасибо. Модифицировал вашу формулу. Я понимаю о чем говорю. В моем случае работает гораздо быстрее ;)
Код
=IF(($D$5:$D$61>=E$2)*($D$5:$D$61<=(E$2+E$3));E$4;"")
 
Сейчас попробуем )
 
Юрий, не согласен,
Я думаю автор слышал что для обработки надо все в массив скопировать, потом обработать и выгрузить в таблицу, тогда да.

Просто попробовал, самым длительным была вставка. Все пересчеты  - пол сек. массив 10000x100.Ноутбук на I3
а формула
Код
=IF(($D$5:$D$61>=E$2)*($D$5:$D$61<=(E$2+E$3));E$4;"")
бессмысленна.
Изменено: БМВ - 1 Мар 2017 23:03:56
 
Цитата
БМВ написал:
для обработки надо все в массив скопировать, потом обработать и выгрузить в таблицу, тогда да
Именно так я и сделал )) А с чем не согласны? Что на массивах будет не так быстро?
Может Павлу хочется с массивами познакомиться )
Pavel.Nev,  проверьте.
 
C  этим
Цитата
Юрий М написал:
Думаю, при таком количестве ячеек нужно не формулами, а макросом заполнять.
не согласен. Не согласен со словом НУЖНО. It depends of ,..
А первичный вопрос
Цитата
Pavel.Nev написал:
Помогите пож-та решить задачку посредством формулы массива:
что явно не о скриптах.
 
 
Я ведь только предположил, что формулами на таком объёме будет долго.
И что-то мне подсказывает, что Павел подразумевал именно "мои" массивы )
Хотя, могу и ошибаться.
Но в любом случае лишний вариант не помешает: есть альтернатива.
 
Цитата
Юрий М написал:
есть альтернатива.
а вот это верно. Уметь надо многое, а использовать и вибирать, нужное и удобное в каждом конкретном случае,
 
Друзья, спасибо большое за помощь. Все варианты работают. УРА!!!
Страницы: 1
Читают тему (гостей: 1)
Наверх