1

Мне нужно захватить ячейку и поместить ее на другой лист только тогда, когда это дата. Есть ли способ, где я могу сказать, что = IF('Master Intake Tracker'!K7 = "Любая дата", "Мастер отслеживания потребления"!I7, "")........ любой способ сделать это? А также не захватывает ли клетка без ответа? так что если ячейка пуста, она не будет захвачена и отправлена на другой лист?

4 ответа4

2

В качестве альтернативы вы можете использовать следующую пользовательскую функцию (которая просто делает функцию VBA доступной в электронной таблице:

Function IsADate(aCell As Range) As Boolean

  If IsDate(aCell.Value) Then
    IsADate = TRUE
  Else
    IsADate = FALSE
  End If

End Function

Эта функция будет возвращать значение ИСТИНА, если ячейка имеет обычное значение Excel в формате даты или если в ней есть строка, в которой указана дата (например, «3 ноября 2012 г.»).

Использование будет простым:

=IF(ISADATE('Master Intake Tracker'!K7),'Master Intake Tracker'!I7,"")
1

Даты - это просто отформатированные числа в Excel - их сложно явно проверить на дату, но вы, вероятно, можете просто сделать это:

=IF('Master Intake Tracker'!K7>0,'Master Intake Tracker'!I7,"")

это соответствует логике формулы в вашем вопросе - если вы хотите вернуть саму дату, то измените на:

=IF('Master Intake Tracker'!K7>0,'Master Intake Tracker'!K7,"")

1

Используйте =DateValue и позвольте Excel решить, является ли ваш ввод верной датой.

Предполагая, что ваша тестовая ячейка - A1, вы можете использовать эту формулу:
=IF(ISERROR(DATEVALUE(TEXT(A1,"MM/DD/YYYY"))),"no its not!","its a date!")

Подгонянный к вашему примеру:
=IF(ISERROR(DATEVALUE(TEXT('Master Intake Tracker'!K7,"MM/DD/YYYY"))),"",'Master Intake Tracker'!K7)

0

Ваш вопрос несколько расплывчатый и неоднозначный. Если вы имеете в виду «[это] дата, сохраненная как дата (в числовом представлении дат в Excel)?», То

=IF(AND(K7<=NOW(), K7>=(TODAY()-365)), …, "")

может быть хорошим местом для начала.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .