Таблица Excel с формулой, которая не вычисляется

Таблица Excel с формулой, которая не вычисляется

У меня есть таблица Excel, преобразованная в таблицу.

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

введите описание изображения здесь

Как видите, столбец [AgeGroup] не рассчитывается для столбца [Age] во второй строке.

решение1

необходимо включить параметры расчета -> автоматически

введите описание изображения здесь

решение2

Интересно, что есть еще одна возможность с вариантами, хотя решение здесь, безусловно, было хорошим и быстрым!

Приведенное изображение допускает возможность следующего, хотя не показанный материал слева (столбцы A и B) может создать то же самое изображение, и поэтому проблема НЕ будет связана со следующим.

Если у вас есть Таблица, которая имеет больше, чем начальная строка, у вас могут быть формулы в столбце, которым нужна информация из, скажем, пустых ячеек в их строке. И если, как в этом случае, пустая ячейка ДОЛЖНА генерировать пробел из присутствующей формулы, то это, безусловно, так и будет.

Далее, если удалить все данные под этой первой строкой, можно удалить и формулу. И если не менять размер Таблицы, а начать вводить данные в теперь пустые строки, можно не увидеть вывода из... никакой формулы.

Затем можно добавить строку или строки и заметить, что формула появляется в столбце этих строк. Таким образом, можно увидеть проблему, когда добавляешь, скажем, строку 2 здесь, переходишь в конец таблицы и добавляешь новую строку, вводя данные столбца A или B, и видишь счастливый результат: формула присутствует в этой ячейке, хотя в этом случае она правильно показывает пробел.

Это карточный домик совпадений, но если под последней четкой успешной формулой над выбранной ячейкой находится всего лишь (до) четырех строк, это ВОЗМОЖНО.

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

При тестировании я наткнулся на странную вещь. На самом деле две, но тесно связанные. За пределами таблицы, если ввести число в ячейку с общим форматом, оно отобразится как число, выровняется по правому краю ячейки, будет воспринято как число всеми функциями и т. д. Если затем переформатировать в текстовый формат, то во многих случаях оно сохранится в этом режиме отображения, и формулы все равно будут обрабатывать его как число, хотя некоторые и не будут.

А если вместо числа была указана формула, то ее результат, как правило, все равно будет использован, даже формулой, созданной ПОСЛЕ переформатирования(!). Можно "принудить" ячейку к нужному положению нажатием F2 и Enter, и другими способами, и тогда переформатирование "примет" все значения.

Но в таблице, переформатируя ячейки формулы в текст и используя некоторые базовые методы приведения, формула продолжает работать, хотя любые числовые результаты будут представлены как текст, выровненные по левому краю и т. д. Формулы ПРОДОЛЖАЮТ РАБОТАТЬ, изменяя результаты для нового введенного значения, которое использует формула!

Не уверен, какое это может быть применение, или это ошибка, которая будет исправлена ​​в какой-то будущей версии, но... интересно.

решение3

Похоже, вы неправильно ссылаетесь на значения ячеек. То, как вы это написали, [Age]ссылается на все поле. Вы хотите [@Age]ссылаться на значение в этом поле и в той же строке, что и формула. Смотрите:Использование структурированных ссылок с таблицами Excel - Служба поддержки Microsoft

=IF(ISBLANK([@Age]),"",IF([@Age]<18 ... et cetera

Кстати, вы можете быть более эффективны с функцией IFS(), которая похожа на несколько IF()операторов, но без всей этой вложенности. Она принимает несколько condition,resultпар и возвращает результат, соответствующий первому истинному условию. Вы можете сделать ее еще более эффективной, изменив порядок числовых проверок, но вам следует оставить пустой чек в начале. В примере ниже я преобразовал ее в проверку, NOT(ISNUMBER())чтобы отловить те случаи, когда кто-то вводит текст вместо числа.

=IFS(NOT(ISNUMBER([@Age])),"",[@Age]>=85,"85+",[@Age]>=65,"65 to 84",[@Age]>=40,"40 to 64",[@Age]>=18,"18 to 39",[@Age]<18,"<18")

введите описание изображения здесь

Связанный контент