Страницы: 1 2 След.
RSS
Как заморозить вычисления в одной ячейке на листе.
 
Здравствуйте.
Ответьте - можно ли заморозить одну ячейку с формулой ?

То есть чтобы все формулы реагировали на пересчет листа, а одна ячейка - была бы замороженной.
Конкретно на Листе3 надо заморозить вычисления в ячейке F19.
 
Введите в нее значение а не формулу
Согласие есть продукт при полном непротивлении сторон
 
Sanja, нет именно формула нужна.
 
Зачем тогда формула, если она не должна ничего вычислять? Уточните задачу.
 
Без макросов никак, а с ними смысл формулы теряется :)  
Согласие есть продукт при полном непротивлении сторон
 
Для F19:
=ЕСЛИ(A1=1;СЛУЧМЕЖДУ(1;10);F19)
В А1 - флаг "считать/не считать". Итеративные вычисления (Файл-Параметры-Формулы) разрешить, количество итераций - 1

Только как пример, пользоваться не рекомендую - итеративные вычисления имеют ряд неприятных подводных камней, да и предназначен этот инструмент для точных вычислений, а не для таких  костылей.
 
Итак еще раз вопрос.

Есть на листе много формул.
Формулы привел - для примера.

Одна формула, в ячейке F19 - не должна вычисляться при каждом пересчете.
Она должна вычисляться так - на кнопку нажал и при следующем пересчете листа - она все посчитает.
Дальше считать не надо - нажал на кнопку - заморозилась ячейка, до следующего раза пока в ней не возникнет нужда.
 
Цитата
OlegSmirnov написал: на кнопку нажал
Значит макросы есть? Тогда считайте в коде и по нажатию вставляйте рассчитанное значение. Отключить/включить пересчет ОДНОЙ ячейки, штатными средствами невозможно
Согласие есть продукт при полном непротивлении сторон
 
Цитата
Sanja написал:
Тогда считайте в коде
Это как - рассчитать в коде?
Там формула десятиэтажная.
 
Цитата
OlegSmirnov написал: Там формула десятиэтажная.
Тем более, но для этого нужно знать что и как рассчитывать.
Это вопрос уже совсем другой темы
Согласие есть продукт при полном непротивлении сторон
 
OlegSmirnov, Вы определитесь что вам нужно. Обеспечить неизменность этой ячейки или случайное значение в ней по требованию. Последнее делается макросом в одну строку. Где-нибудь рядом  делаете ваш СЛУЧМЕЖДУ и по кнопке копируете это значение в вашу ячейку,
По вопросам из тем форума, личку не читаю.
 
БМВ, да при чем здесь СЛУЧМЕЖДУ ?
Я его для вида написал.
Вопрос не про формулу СЛУЧМЕЖДУ, а про замораживание вычислений в конкретной ячейке.
 
Цитата
OlegSmirnov написал:
при чем здесь СЛУЧМЕЖДУ ?
Да любая пусть будет формула: по кнопке (по мере необходимости) копируйте ЗНАЧЕНИЕ в нужную ячейку.
 
Юрий М, а я откуда это значение возьму ?
 
Из ячейки, где эта самая формула находится.
 
Цитата
OlegSmirnov написал: Юрий М , а я откуда это значение возьму ?
На второй круг пошли :D
Цитата
Sanja написал: считайте в коде и по нажатию вставляйте рассчитанное значение
Согласие есть продукт при полном непротивлении сторон
 
Sanja, не - я объясняю вариант медведя: пусть формула считает ))
 
Цитата
Юрий М написал: вариант медведя
Те же яйца (пасхальные)... ;)  
Согласие есть продукт при полном непротивлении сторон
 
Не совсем: не нужно писать код на замену "десятиэтажной формулы" ))
 
OlegSmirnov,
1. Исключить ячейку или диапазон из расчета формул находящихся в них -  нельзя.
2. Можно пересчитывать все остальные ячейки, при помощи кода, но это не блокирует пересчет при F9 или просто при автопересчете.
3. Использовать метод предложенный vikttur , как он и описал нужно очень осторожно.
По вопросам из тем форума, личку не читаю.
 
Вот я пожалуй приведу ту формулу массива, которую, как мне в этой теме подсказали - можно как-то макросом записать:
(Слабонервных прошу не читать это сообщение)
Код
=СУММ(ЕСЛИОШИБКА(ЕСЛИОШИБКА(--ЕСЛИ(ЕОШ(ПОИСК($B176;ЕСЛИ(ЕОШИБКА(ПОИСК($B176;'Срез шкалы'!$G$7:$G$2626&'Срез шкалы'!$H$7:$H$2626&'Срез шкалы'!$I$7:$I$2626));0;ПСТР('Срез шкалы'!$G$7:$G$2626&'Срез шкалы'!$H$7:$H$2626&'Срез шкалы'!$I$7:$I$2626;ПОИСК($B176;'Срез шкалы'!$G$7:$G$2626&'Срез шкалы'!$H$7:$H$2626&'Срез шкалы'!$I$7:$I$2626);ДЛСТР($B176)+2))));0;ЕСЛИ(ПСТР(ЕСЛИ(ЕОШИБКА(ПОИСК($B176;'Срез шкалы'!$G$7:$G$2626&'Срез шкалы'!$H$7:$H$2626&'Срез шкалы'!$I$7:$I$2626));0;ПСТР('Срез шкалы'!$G$7:$G$2626&'Срез шкалы'!$H$7:$H$2626&'Срез шкалы'!$I$7:$I$2626;ПОИСК($B176;'Срез шкалы'!$G$7:$G$2626&'Срез шкалы'!$H$7:$H$2626&'Срез шкалы'!$I$7:$I$2626);ДЛСТР($B176)+2));ПОИСК($B176;ЕСЛИ(ЕОШИБКА(ПОИСК($B176;'Срез шкалы'!$G$7:$G$2626&'Срез шкалы'!$H$7:$H$2626&'Срез шкалы'!$I$7:$I$2626));0;ПСТР('Срез шкалы'!$G$7:$G$2626&'Срез шкалы'!$H$7:$H$2626&'Срез шкалы'!$I$7:$I$2626;ПОИСК($B176;'Срез шкалы'!$G$7:$G$2626&'Срез шкалы'!$H$7:$H$2626&'Срез шкалы'!$I$7:$I$2626);ДЛСТР($B176)+2)))+ДЛСТР($B176);1)="0";0&",";"")&--ЛЕВБ(ПОДСТАВИТЬ(ПСТР(ЕСЛИ(ЕОШИБКА(ПОИСК($B176;'Срез шкалы'!$G$7:$G$2626&'Срез шкалы'!$H$7:$H$2626&'Срез шкалы'!$I$7:$I$2626));0;ПСТР('Срез шкалы'!$G$7:$G$2626&'Срез шкалы'!$H$7:$H$2626&'Срез шкалы'!$I$7:$I$2626;ПОИСК($B176;'Срез шкалы'!$G$7:$G$2626&'Срез шкалы'!$H$7:$H$2626&'Срез шкалы'!$I$7:$I$2626);ДЛСТР($B176)+2));ПОИСК($B176;ЕСЛИ(ЕОШИБКА(ПОИСК($B176;'Срез шкалы'!$G$7:$G$2626&'Срез шкалы'!$H$7:$H$2626&'Срез шкалы'!$I$7:$I$2626));0;ПСТР('Срез шкалы'!$G$7:$G$2626&'Срез шкалы'!$H$7:$H$2626&'Срез шкалы'!$I$7:$I$2626;ПОИСК($B176;'Срез шкалы'!$G$7:$G$2626&'Срез шкалы'!$H$7:$H$2626&'Срез шкалы'!$I$7:$I$2626);ДЛСТР($B176)+2)))+ДЛСТР($B176);15);",";ПОВТОР(" ";15));15));--ЕСЛИ(ЕОШ(ПОИСК($B176;ЕСЛИ(ЕОШИБКА(ПОИСК($B176;'Срез шкалы'!$G$7:$G$2626&'Срез шкалы'!$H$7:$H$2626&'Срез шкалы'!$I$7:$I$2626));0;ПСТР('Срез шкалы'!$G$7:$G$2626&'Срез шкалы'!$H$7:$H$2626&'Срез шкалы'!$I$7:$I$2626;ПОИСК($B176;'Срез шкалы'!$G$7:$G$2626&'Срез шкалы'!$H$7:$H$2626&'Срез шкалы'!$I$7:$I$2626);ДЛСТР($B176)+2))));0;ЕСЛИ(ПСТР(ЕСЛИ(ЕОШИБКА(ПОИСК($B176;'Срез шкалы'!$G$7:$G$2626&'Срез шкалы'!$H$7:$H$2626&'Срез шкалы'!$I$7:$I$2626));0;ПСТР('Срез шкалы'!$G$7:$G$2626&'Срез шкалы'!$H$7:$H$2626&'Срез шкалы'!$I$7:$I$2626;ПОИСК($B176;'Срез шкалы'!$G$7:$G$2626&'Срез шкалы'!$H$7:$H$2626&'Срез шкалы'!$I$7:$I$2626);ДЛСТР($B176)+2));ПОИСК($B176;ЕСЛИ(ЕОШИБКА(ПОИСК($B176;'Срез шкалы'!$G$7:$G$2626&'Срез шкалы'!$H$7:$H$2626&'Срез шкалы'!$I$7:$I$2626));0;ПСТР('Срез шкалы'!$G$7:$G$2626&'Срез шкалы'!$H$7:$H$2626&'Срез шкалы'!$I$7:$I$2626;ПОИСК($B176;'Срез шкалы'!$G$7:$G$2626&'Срез шкалы'!$H$7:H2630&'Срез шкалы'!$I$7:$I$2626);ДЛСТР($B176)+2)))+ДЛСТР($B176);1)="0";0&"-";"")&--ЛЕВБ(ПОДСТАВИТЬ(ПСТР(ЕСЛИ(ЕОШИБКА(ПОИСК($B176;'Срез шкалы'!$G$7:$G$2626&'Срез шкалы'!$H$7:$H$2626&'Срез шкалы'!$I$7:$I$2626));0;ПСТР('Срез шкалы'!$G$7:$G$2626&'Срез шкалы'!$H$7:$H$2626&'Срез шкалы'!$I$7:$I$2626;ПОИСК($B176;'Срез шкалы'!$G$7:$G$2626&'Срез шкалы'!$H$7:$H$2626&'Срез шкалы'!$I$7:$I$2626);ДЛСТР($B176)+2));ПОИСК($B176;ЕСЛИ(ЕОШИБКА(ПОИСК($B176;'Срез шкалы'!$G$7:$G$2626&'Срез шкалы'!$H$7:$H$2626&'Срез шкалы'!$I$7:$I$2626));0;ПСТР('Срез шкалы'!$G$7:$G$2626&'Срез шкалы'!$H$7:$H$2626&'Срез шкалы'!$I$7:$I$2626;ПОИСК($B176;'Срез шкалы'!$G$7:$G$2626&'Срез шкалы'!$H$7:$H$2626&'Срез шкалы'!$I$7:$I$2626);ДЛСТР($B176)+2)))+ДЛСТР($B176);15);"-";ПОВТОР(" ";15));15)));0))
 
 
Цитата
Sanja написал:
На второй круг пошли
думаю тему можно переименовать так:
вот вам задача без продуманной логики и обьяснений, а Вы теперь догадайтесь что я хочу получить в итоге

при такой постановке "кружить" в поисках решения можно бесконечно долго, второй круг - это только начало
Цитата
OlegSmirnov написал:
Как заморозить вычисления в одной ячейке на листе
скопируйте результат вычислений как значение. все, вычисления - заморожены
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
Как заморозить вычисления в одной ячейке на листе.
и
Цитата
OlegSmirnov написал:
можно как-то макросом записать
Есть разница?
По вопросам из тем форума, личку не читаю.
 
OlegSmirnov, боюсь, Вы не понимаете, что Вам предложили...
Допустим, Ваша формула в ячейке А1. В нужное время нажимаем кнопку и в ячейку А2 занесём значение, которое в данный момент получено формулой. Макрос в одну строку:
Код
range("A2").value = range("A1").value
И пусть дальше формула в А1 продолжает считать - в ячейке А2 останется значение, которое было на момент нажатия на кнопку.
 
БМВ, вы видели формулу, которую я привел ?
Писать ее макросом - это скажем так - с месяцок (по самым приблизительным оценкам).
Да есть разница - месяц писать макрос или отключить за секунду вычисления в ячейке, а потом их включить.

Имеется ввиду - разница во времени.
 
Цитата
OlegSmirnov написал:
БМВ , вы видели формулу, которую я привел ?
Я то видел, а вы пытались понять что вам пишут эти животные?
По вопросам из тем форума, личку не читаю.
 
Юрий М, мне эту формулу надо отключать - оттого, что она грузит весь файл при каждом пересчете листа.
Таких формул около 50 штук.
Вот для чего мне это надо.
 
Вопросы пошли по кругу.
Перечитайте тему. Сделайте выводы. Рекомендаций дано несколько и по несколько раз.
 
Цитата
OlegSmirnov написал:
мне эту формулу надо отключать - оттого, что она грузит весь файл
А может попробовать бороться с причиной, а не с последствиями. Возможно можно формулу оптимизировать?
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Bema, а как ее оптимизировать ?
Страницы: 1 2 След.
Наверх