У Гильермо есть большой рабочий лист с ценами и калькуляцией продуктов. Рабочий лист рассчитывал нормально, а затем внезапно некоторые ячейки на агрегированных страницах перестали вычислять. Если он щелкнет ячейку и нажмет Enter, ячейка пересчитается. Гильермо проверил все форматы, на которые ссылаются ячейки, и все они настроены на учет или число, плюс выбран автоматический расчет. Он не понимает, что вызывает проблему.

Есть несколько вещей, которые могут способствовать возникновению этой проблемы.

Во-первых, виновником может быть макет вашего рабочего листа. Если листы в вашей книге очень большие, важно помнить порядок, в котором Excel выполняет свои вычисления. Вы упоминаете «агрегированные страницы», что подразумевает, что здесь задействовано несколько рабочих листов, даже если вы упомянули только «большой рабочий лист» в начале. Excel пересчитывает рабочие листы, пытаясь упорядочить все вычисления (построение цепочки вычислений) так, чтобы ячейки, которые меньше всего зависят от других ячеек, располагались в начале последовательности, а ячейки, которые больше всего зависят от других ячеек, располагались ближе к концу последовательности. Если Excel обнаруживает, что ячейка зависит от другой ячейки, расположенной ниже в цепочке вычислений, последовательность перестраивается, чтобы переместить эту ячейку дальше по цепочке.

Таким образом, если у вас есть большие рабочие листы с большим количеством вычислений — особенно вычислений, которые зависят от значений или результатов в других рабочих таблицах или рабочих книгах — тогда возможно, что Excel запутается и не сможет прийти к окончательному правильному результату для всех вычислений. и совокупная информация может не быть пересчитана должным образом при первом обходе.

При всем вышесказанном следует отметить, что в современных версиях Excel это маловероятно. Excel намного лучше в новых версиях, чем вычисления в старых версиях программы. Так что виновник может быть в другом месте.

Помня об этом, еще одна вещь, которую вы можете попробовать, — это проверить, действительно ли ваши ошибочные ячейки формулы содержат формулы. Если вместо этого они будут проанализированы Excel как текст, вы, очевидно, получите неверные результаты. Вы можете выбрать ячейку, нажать F2 (чтобы войти в режим редактирования), а затем нажать Enter. Если у вас много таких ячеек, попробуйте следующее:

  1. Нажмите Ctrl + H. Excel отображает вкладку «Заменить» диалогового окна «Найти и заменить».

  2. В поле «Найти» введите знак равенства (=).

  3. В поле «Заменить на» введите знак равенства (=).

  4. Щелкните «Заменить все».

Третье, что вы можете проверить, — это то, что в ваших таблицах используются пользовательские функции (UDF). Если совокупные итоги каким-либо образом зависят от значений, возвращаемых UDF, тогда вам нужно убедиться, что UDF возвращают правильные значения. Иногда они могут не пересчитываться, когда вы этого ожидаете, поэтому они могут дать (при некоторых обстоятельствах) неверные результаты. Если вы считаете, что это так, измените кодировку макроса так, чтобы в начале был оператор Application.Volatile.

И, говоря о макросах, вы можете проверить, чтобы убедиться, что ни один из макросов не влияет на процесс расчета или отключение автоматического расчета.

Еще нужно проверить, не может ли быть виновата сторонняя надстройка для Excel. Один читатель ExcelTips предположил, что если многие ячейки используют UDF из надстроек, то Excel требует гораздо больше времени для пересчета. Нажатие F9 может помочь ускорить процесс пересчета, но вы также можете отключить некоторые надстройки, чтобы увидеть, исчезнет ли проблема.

Наконец, вы захотите проверить, не создали ли вы случайно какие-либо циклические ссылки на своем листе. Это происходит, когда формула в одной ячейке каким-то образом ссылается на ячейку, в которой существует формула.

Таким образом, если ячейка C1 содержит формулу, зависящую от ячеек D7 и E7, и одна из этих ячеек содержит формулу, зависящую от ячейки C1, тогда существует циклическая ссылка. Если циклические ссылки не обрабатываются должным образом (как описано в других вопросах ExcelTips), они могут привести к неожиданным или ошибочным результатам. Если на рабочем листе есть круговая ссылка, в левой части строки состояния должен быть ее индикатор.

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (13014) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365.