Не обновлять дату в выражении IF с использованием TODAY ()

416
Kimberly Meyers

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

0
Со встроенными функциями нет способа сделать это. Однако вы можете создать немного кода VBA, который сравнивал бы содержимое ячейки при открытии листа. Если ячейка пуста, в нее можно вставить дату. Если ячейка не пуста, ничего не происходит. Forward Ed 5 лет назад 0

2 ответа на вопрос

6
phuclv

Суть в TODAY()том, чтобы получить дату последнего пересчета. IFили любые другие функции не помогут, потому что нет функции, которая хранит время, когда она была впервые вызвана, и всегда возвращает это значение

Если вам нужно вставить текущую дату без изменения, вам не следует использовать функцию, вместо этого вставьте ее статически с помощью Ctrl+ ;(точка с запятой). Точно так же, чтобы вставить NOW()без изменения, используйте Ctrl+ :(двоеточие)

Вставить статическую дату или время в ячейку Excel

Статическое значение на рабочем листе - это значение, которое не изменяется при пересчете или открытии рабочего листа. При нажатии комбинации клавиш, таких как Ctrl +; чтобы вставить текущую дату в ячейку, Excel «делает снимок» текущей даты, а затем вставляет дату в ячейку. Поскольку значение этой ячейки не изменяется, оно считается статическим.

Введите дату или время, значение которого обновляется

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

Чтобы вставить текущую дату или время для обновления, используйте функции СЕГОДНЯ и СЕЙЧАС, как показано в следующем примере. Для получения дополнительной информации о том, как использовать эти функции, см. Функцию СЕГОДНЯ и функцию ТЕПЕРЬ.

Вставьте текущую дату и время в ячейку

Оуууууууу, ты избил меня до удара! хорошая работа! angelofdev 5 лет назад 0
Вот это да. Приятно знать. И намного очищен, чем документация, которую вы связали с вами. Это включает в себя клавишу `+`, а затем он начинает смещение ячеек. Без `+` (как ясно из вашего ответа, использующего тег kbd) это просто работает. Hennes 5 лет назад 0
Sorry if you thought my question was stupid. Is there another function to use ? We are trying to eliminate keystrokes ? Kimberly Meyers 5 лет назад 0
Хм, учитывая время. Это ответ мне на phuclv? Hennes 5 лет назад 0
I am just trying to find a solution. The tone of PHUCLV's comment seemed un-necessary. If I knew the answer I would not be asking the questions. I did ask if there was another function to use. Thank you for your help. Kimberly Meyers 5 лет назад 0
@KimberlyMeyers Я думаю, вы слишком много читаете об этом. Phuclv только что объяснял, как именно работает функция `TODAY ()`, альтернативой, как он упоминает, является функция `NOW ()`. Вы можете попробовать поместить нужную дату в ячейку и сослаться на нее вместо `TODAY ()`, в противном случае я не верю, что вы можете выполнить то, что вам нужно, без использования VBA. angelofdev 5 лет назад 1
@KimberlyMeyers извините, если вы думаете, что это слишком резко. Я просто имел в виду, что нет никакого способа использовать встроенные * функции *, потому что они будут обновляться каждый раз, когда лист пересчитывается. Вы должны вставить их в виде статического текста или статической даты, что также объясняется в статье MSDN, на которую я ссылался. И будет меньше нажатия клавиш (только 2 вместо `TODAY ()`) phuclv 5 лет назад 0
0
Darren Bartrup-Cook

Один из способов, который может вам помочь, - использовать циклическую ссылку и включить итеративный расчет.

  • В разделе « Параметры» выберите вкладку « Формулы » и установите флажок « Включить итеративный расчет» .
  • В ячейку B1введите формулу: =IF(A1<>"",IF(B1="",TODAY(),B1),"")(вернется пробел)
  • Отформатируйте ячейку как дату.
  • Добавьте значение в ячейку A1- текст с надписью «Date:» будет хорошим выбором.
    Текущая дата должна появиться в ячейке, B1а не обновляться.

Downsides

  • Редактирование формулы пересчитает ее в 0- или 00/01/1900 в формате даты.
  • Удаление значения в ячейке A1 и добавление его обратно пересчитает дату.
  • пользователей

Итерация - это повторный пересчет листа до тех пор, пока не будет выполнено определенное числовое условие. Excel не может автоматически рассчитать формулу, которая ссылается на ячейку - прямо или косвенно - которая содержит формулу. Это называется круговой ссылкой. Если формула ссылается на одну из своих собственных ячеек, вы должны определить, сколько раз формула должна пересчитываться. Циркулярные ссылки могут повторяться бесконечно. Тем не менее, вы можете контролировать максимальное количество итераций и количество допустимых изменений.
Изменение формулы пересчета, итерации или точности

Похожие вопросы