Ячейка Excel обновляется только после изменения второй ячейки - PullRequest
0 голосов
/ 06 октября 2011

Обновление: файл

По запросу я включаю ссылку на файл: здесь . Файл больше не доступен

Я преобразовал свои исходные данные в игровой контекст, в котором лист отслеживает баллы за выполненные действия, и по достижении различных сумм баллов пользователь повышается в рейтинге. Простой способ увидеть проблему - ввести 1 (а затем 2 и 3) в F15 рядом с ячейкой с 500. Когда вы это сделаете, обратите внимание, как значения в Q5: Q6 меняются с 0 на 1, но ранжирование в C2, которая является функцией SUM, которая считает этот диапазон, не увеличивается до 3, как должно. И, следовательно, значения в L12 и L14, которые основаны на нем, также не обновляются. Теперь, если вы пересчитаете, ранг повысится и L-клетки обновятся. ТЕПЕРЬ, ячейка E3, которая основана на ячейках L, не отражает правильное значение, и вам нужно еще раз пересчитать лист для ее обновления.

Надеюсь, все это имеет смысл - дайте мне знать, если вам нужны какие-либо разъяснения!

Оригинальный вопрос

Некоторые из моих формул не обновляются сразу после ввода данных. Просто чтобы убрать это с дороги, прежде чем кто-то это предложит, мне НЕОБХОДИМО, чтобы расчет рабочей книги был установлен автоматически, и я НЕ открываю другие книги с их методом расчета, установленным на ручной. Так что это не проблема.

Я бы дал конкретику по формулам, но я не думаю, что это как-то связано с этим. Формула представляет собой простую функцию SUM, которая складывает диапазон. Диапазон обновляется должным образом - как только я введу данные, номера в диапазоне изменятся соответственно. Функция SUM также должна автоматически обновляться, но мне нужно ввести данные в другую ячейку или нажать «Удалить» в пустой ячейке (в основном, заставить лист пересчитать еще раз), чтобы функция SUM отражала изменения в диапазоне.

Единственное, о чем я могу думать, это о том, что я включил итеративный расчет (в меню «Файл»> «Параметры»> вкладка «Формулы»), чтобы позволить ячейкам сохранять свое предыдущее значение, если определенное условие истинно, иначе обновлять их значение , Мои настройки: 1 для максимального количества итераций и значение по умолчанию 0,001 для максимального изменения. Тем не менее, я использовал это раньше без проблем с простой функцией SUM. И у меня на листе есть и другие простые функции, которые ДОЛЖНЫ обновляться должным образом, поэтому я немного растерялся ...

Дайте мне знать, будет ли полезной дополнительная информация. Спасибо за любые предложения!

Ответы [ 3 ]

0 голосов
/ 06 октября 2011

У вас есть циклические ссылки: формула ячейки в диапазоне S4:AL103 все ссылаются на себя (при определенных условиях). Это приведет к тому, что Excel прекратит вычисление, поскольку не сможет разрешить конфликт.

Вам понадобится изменить формулы

0 голосов
/ 06 июня 2012

Первоначально добавлено в мой первоначальный пост; переместил его в фактический ответ, чтобы он мог быть принят

Итак, я разобрался с решением. Изучив итерацию немного больше, я обнаружил, что в итеративном режиме Excel обрабатывает ячейки по одной в определенном порядке (я думаю, в алфавитном порядке?). Таким образом, если ячейка A зависит от ячейки B, но ячейка B меняет значение позже в процессе, ячейка A будет сохранять значение, основанное на старом значении ячейки B, а не на новом, до тех пор, пока не будет предложен другой пересчет ... ИЛИ, пока начинается другая итерация. Таким образом, установка максимальной итерации на большее число, чем 1, устраняет проблему. Поскольку у меня было две ячейки, которые не обновлялись в листе примера, который я вам дал, ребята, его нужно было бы установить примерно на 3. В моем реальном листе я должен был установить его на 5.

Спасибо за мысли! Надеюсь, это поможет какой-то другой растерянной душе!

0 голосов
/ 06 октября 2011

UPDATE : Извините, я не понял, что это формула, а не функция. Виноват. Я оставлю ответ на тот случай, если у кого-то возникнет та же проблема, но с функцией. Извините!

Попробуйте добавить это внутри кода:

Application.Volatile

Это приведет к пересчету функции при каждом изменении ячейки на листе, на котором эта функция появляется.

Ссылка: http://msdn.microsoft.com/en-us/library/aa213653(v=office.11).aspx

...