Здравствуйте. Помогите, пожалуйста, найти решение проблемы.
Допустим, в некоторую ячейку №1 поступают данные через DDE-сервер из торгового биржевого терминала. Данные обновляются не реже 1 раза в секунду, то есть, можно сказать, что бесперерывно.
В другой ячейке №2 написана формула, которая, при определенном значении статичной третьей ячейки №3, выполняет свой расчет с участием динамичной первой ячейки №1, а при всех остальных условиях расчет ведется по статичным данным, то есть, обновляемая первая ячейка №1 более не влияет на результат второй ячейки №2. Иными словами, если указать, к примеру, в третьей ячейке - "1", то вторая ячейка будет постоянно пересчитываться по мере поступления данных в первую ячейку. Как только я впишу в третью ячейку не "1", а что либо другое, - вторая ячейка станет статичной, так как более в ее расчете не будет участвовать обновляемая ячейка.
Вооот. Теперь сама проблема.
Даже когда в третьей ячейке находятся данные, при которых вторая ячейка становится статичной и ее результат более не зависит от обновляемой первой, эксель все равно пересчитывает ее, т.к. в самой формуле участвует обновляемая ячейка. Его не волнует, что при данных условиях обновляемая ячейка более не влияет на результат, - пересчет все равно происходит. Надо сделать так, чтобы как только я указал в ячейке №3 - "1", ячейка №2 более не пересчитывалась вместе с поступлением котировок в ячейку №1. Может, как-то по-другому написать формулу, нежели у меня, или что-то в таком роде.
Буду очень-очень благодарен за помощь в данном вопросе. Схематичный вариант проблемы прилагаю к сообщению.
Здравствуйте. Помогите, пожалуйста, найти решение проблемы.
Допустим, в некоторую ячейку №1 поступают данные через DDE-сервер из торгового биржевого терминала. Данные обновляются не реже 1 раза в секунду, то есть, можно сказать, что бесперерывно.
В другой ячейке №2 написана формула, которая, при определенном значении статичной третьей ячейки №3, выполняет свой расчет с участием динамичной первой ячейки №1, а при всех остальных условиях расчет ведется по статичным данным, то есть, обновляемая первая ячейка №1 более не влияет на результат второй ячейки №2. Иными словами, если указать, к примеру, в третьей ячейке - "1", то вторая ячейка будет постоянно пересчитываться по мере поступления данных в первую ячейку. Как только я впишу в третью ячейку не "1", а что либо другое, - вторая ячейка станет статичной, так как более в ее расчете не будет участвовать обновляемая ячейка.
Вооот. Теперь сама проблема.
Даже когда в третьей ячейке находятся данные, при которых вторая ячейка становится статичной и ее результат более не зависит от обновляемой первой, эксель все равно пересчитывает ее, т.к. в самой формуле участвует обновляемая ячейка. Его не волнует, что при данных условиях обновляемая ячейка более не влияет на результат, - пересчет все равно происходит. Надо сделать так, чтобы как только я указал в ячейке №3 - "1", ячейка №2 более не пересчитывалась вместе с поступлением котировок в ячейку №1. Может, как-то по-другому написать формулу, нежели у меня, или что-то в таком роде.
Буду очень-очень благодарен за помощь в данном вопросе. Схематичный вариант проблемы прилагаю к сообщению.operkote
Массив этот жутко садит производительность. Та же история была с другим массивом, но там было от него отказаться легко, и глючить перестало. Здесь же мне из-за этой части условий суммы, как новичку в экселе, непонятно, как убрать массив:
(H:H<P:P)
Заранее большое спасибо за помощь.
Если можно, я бы хотел задать еще один небольшой вопрос.
Как оставить данную формулу в силе, отказавшись от массива?
Массив этот жутко садит производительность. Та же история была с другим массивом, но там было от него отказаться легко, и глючить перестало. Здесь же мне из-за этой части условий суммы, как новичку в экселе, непонятно, как убрать массив:
Без массива работать не хочет - выдает ноль, хотя на самом деле это не так. С массивом все работает как надо.
Вообще, я, конечно, новичок, но ведь в массивах логические "и" и "или" можно (или нужно?) заменять на знаки умножения и сложения соответственно. Если же массив убрать и просто вставить эту формулу в ячейку, то умножение и сложение более не будут логическими функциями.
ABC,
Без массива работать не хочет - выдает ноль, хотя на самом деле это не так. С массивом все работает как надо.
Вообще, я, конечно, новичок, но ведь в массивах логические "и" и "или" можно (или нужно?) заменять на знаки умножения и сложения соответственно. Если же массив убрать и просто вставить эту формулу в ячейку, то умножение и сложение более не будут логическими функциями.operkote
Сообщение отредактировал operkote - Среда, 17.10.2012, 18:06
operkote, Вы заблуждаетесь. Ускоряет вычисления не отказ от красивых скобок. Вы применяете ссылки на весь столбец (на что Вам уже указали), добавляя лишние вычисления. СУММПРОИЗВ() вводится без массивного ввода, но это не ускоряет обработку таких же массивов данных. Стоит заметить, что СУММ() работает немного медленнее, но не на столько, как Вы подумали, отказавшись от трехпальцевого ввода. Формулу можно ускорить существенно - до 20-25% (проверено, Serge_007 может подтвердить):
operkote, Вы заблуждаетесь. Ускоряет вычисления не отказ от красивых скобок. Вы применяете ссылки на весь столбец (на что Вам уже указали), добавляя лишние вычисления. СУММПРОИЗВ() вводится без массивного ввода, но это не ускоряет обработку таких же массивов данных. Стоит заметить, что СУММ() работает немного медленнее, но не на столько, как Вы подумали, отказавшись от трехпальцевого ввода. Формулу можно ускорить существенно - до 20-25% (проверено, Serge_007 может подтвердить):
По поводу того, что я выбираю большой диапазон для массива: я заменил целые столбцы на тысячестрочные диапазоны, но уменьшить не могу - формул и зависимостей в книге довольно много, поэтому не хотелось бы после 50 строчек снова лезть и расширять диапазоны.
Или я не знаю очевидной истины, как заставить диапазон суммирования в формуле саморасширяться при удлинении таблицы? То есть, не в той формуле, что расширяется вместе с таблицей, а в той, что стоит рядом и суммирует все данные в столбце таблицы.
vikttur, Спасибо - формулой воспользовался.
По поводу того, что я выбираю большой диапазон для массива: я заменил целые столбцы на тысячестрочные диапазоны, но уменьшить не могу - формул и зависимостей в книге довольно много, поэтому не хотелось бы после 50 строчек снова лезть и расширять диапазоны.
Или я не знаю очевидной истины, как заставить диапазон суммирования в формуле саморасширяться при удлинении таблицы? То есть, не в той формуле, что расширяется вместе с таблицей, а в той, что стоит рядом и суммирует все данные в столбце таблицы.operkote