Вопрос или проблема
У меня есть электронная таблица Excel, преобразованная в таблицу.
У меня есть столбец с формулой, но когда я ввел данные, формула не рассчиталась.
Как вы видите, столбец [AgeGroup] не вычисляет значения для столбца [Age] во втором ряду.
нужно включить параметры вычисления -> автоматические
Интересно, что существует другая возможность с вариантами, хотя решение здесь было определенно быстрым и удобным!
Представленное изображение позволяет предположить следующее, хотя непоказанный материал слева (столбцы A и B) мог бы создать то же изображение, и проблема ни в чем другом.
Если у вас есть таблица, которая содержит больше, чем первая строка, возможно, вам нужно получить информацию из, скажем, пустых ячеек в вашей строке. И если, как в данном случае, пустая ячейка ДОЛЖНА генерировать пустое значение из присутствующей формулы, то это определенно произойдет.
Кроме того, если вы удалите все данные под первой строкой, вы также можете удалить формулу. И если не изменять размер таблицы, а начинать вводить данные в теперь пустых строках, вы можете не увидеть результата от… отсутствующей формулы.
Затем вы можете добавить строку или строки и заметить, что формула появляется в столбце этих строк. Таким образом, возникает проблема, когда вы добавляете, скажем, строку 2 здесь, переходите к концу таблицы и добавляете новую строку, вводя данные в столбце A или B, и видите счастливый результат: формула присутствует в этой ячейке, хотя в данном случае она правильно показывает пустое значение.
Это дом карточек совпадений, но с всего (до) четырьмя строками под последней успешно работающей формулой над выбранной ячейкой это ВОЗМОЖНО.
Решение тогда, конечно, заключалось бы в изменении размера таблицы, удаляя строки, которые были очищены от данных, или через управление в углу самой нижней, правой ячейки, очищая все, что осталось в ячейках, которые больше не находятся в таблице, и продолжая.
При тестировании я столкнулся с странной вещью. Две на самом деле, но они тесно связаны. За пределами границ таблицы, если вы вводите число в ячейку с общим форматом, оно отображается как число, выровненное по правому краю ячейки, принимается как число всеми функциями и так далее. Если затем вы переформатируете в текстовый формат, многие разы это сохранит этот режим отображения, и формулы все равно будут рассматривать его как число, хотя некоторые не будут.
И если вместо числа присутствовала формула, ее результат обычно все равно будет использоваться, даже формулой, созданной ПОСЛЕ переформатирования(!). Вы можете “принудить” ячейку в нужную ситуацию, нажав F2 и Enter, и другими способами, и тогда переформатирование “сработает” во всех отношениях.
Но в таблице, переформатируя ячейки формулы в текст и используя некоторые базовые техники принуждения, формула продолжает работать, хотя любые числовые результаты будут представлены как текст, выровненные по левому краю и так далее. Формулы ПРОДОЛЖАЮТ РАБОТАТЬ, изменяя результаты для вновь введенного значения, которое использует формула!
Не уверен, какую пользу это может принести, или является ли это ошибкой, которая будет исправлена в какой-то случайной будущем версии, но… интересно.
Кажется, вы некорректно ссылаетесь на значения ячеек. То, как вы это написали, [Age]
ссылается на всё поле. Вам нужно, чтобы [@Age]
ссылался на значение в этом поле и в той же строке, что и формула. Смотрите: Использование структурированных ссылок с таблицами Excel – Поддержка Microsoft
=IF(ISBLANK([@Age]),"",IF([@Age]<18 ... и так далее
К слову, вы можете быть более эффективными с функцией IFS()
, которая похожа на множественные IF()
операторы, но без всех вложений. Она принимает несколько пар условие, результат
и возвращает результат, который соответствует первому истинному условию. Вы можете сделать это ещё более эффективным, изменив порядок ваших числовых проверок, но вам следует оставить проверку на пустое значение в начале. В приведенном ниже примере я преобразовал это в проверку NOT(ISNUMBER())
, чтобы поймать те случаи, когда кто-то вводит текст вместо числа.
=IFS(NOT(ISNUMBER([@Age])),"",[@Age]>=85,"85+",[@Age]>=65,"65 до 84",[@Age]>=40,"40 до 64",[@Age]>=18,"18 до 39",[@Age]<18,"<18")
Ответ или решение
При работе с таблицами в Microsoft Excel важно обеспечить правильную настройку формул и ссылок для корректных вычислений. Если вы столкнулись с проблемой, когда формула в колонке не рассчитывается при вводе данных, следует рассмотреть несколько ключевых аспектов, которые могут способствовать возникновению этой ситуации.
1. Проверка настроек вычислений
Первым шагом в решении проблемы является проверка параметров вычислений в Excel. Убедитесь, что у вас включен автоматический режим пересчета формул:
- Перейдите в меню «Файл» и выберите «Опции».
- В разделе «Формулы» убедитесь, что выбран параметр «Автоматически» в настройках «Параметры расчета».
Если этот параметр установлен на «Вручную», изменения в данных не приведут к автоматическому обновлению формул, что может быть причиной невычисляемых значений.
2. Использование структурированных ссылок
При работе с таблицами в Excel вы должны использовать структурированные ссылки для обращения к значениям в строках. Если в вашей формуле использованы ссылки типа [Age]
, это ссылается на весь столбец. Для обращения к значению в текущей строке необходимо использовать синтаксис [@Age]
. Например, ваша формула должна выглядеть так:
=IF(ISBLANK([@Age]),"",IF([@Age]<18,"<18","..."))
Это гарантирует, что формула получает доступ к значению именно текущей строки, а не всей колонны.
3. Проверка формата ячеек
Формат ячеек также может влиять на вычисления. Если ячейка с формулой отформатирована как текст, формула не будет рассчитываться. Для того чтобы изменить формат:
- Выделите необходимую ячейку или диапазон.
- Щелкните правой кнопкой мыши и выберите «Формат ячеек».
- Убедитесь, что выбран формат «Общий» или «Числовой».
Если вы видите, что ячейка отображает результат формулы как текст (например, выравнена по левому краю), попробуйте переформатировать ячейку и затем нажать F2 (войти в режим редактирования) и Enter, чтобы пересчитать формулу.
4. Работа с пустыми ячейками и удаленными данными
Если вы удалили данные в вашей таблице, возможна ситуация, когда формула больше не действует из-за отсутствия необходимых ей данных. Убедитесь, что во всех ячейках, на которые ссылается формула, присутствуют данные. Если в ячейках, на которые ссылается формула, есть пустые или ошибочные данные, это может повлиять на результат вычисления.
5. Альтернативы функции IF
Для более удобного и компактного подхода вы можете использовать функцию IFS
, которая позволяет избежать вложенных логических операторов IF
. Например:
=IFS(NOT(ISNUMBER([@Age]),"",(другие условия...)))
Этот вариант позволяет обрабатывать несколько условий более эффективно и читаемо.
Вывод
Используйте описанные выше методы, чтобы устранить проблему с невычисляемыми формулами в таблицах Excel. Правильная настройка вычислений, использование структурированных ссылок, мониторинг формата ячеек и правильное обращение с пустыми значениями помогут вам обеспечить бесперебойный расчет формул в ваших таблицах. Если вопросы останутся, не стесняйтесь обращаться за помощью или дополнениями к документации Microsoft.