%20%ED%95%A8%EC%88%98%EB%A5%BC%20%EC%82%BD%EC%9E%85%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%20.png)
답변1
새로운 답변
다시 계산되지 않는 타임스탬프를 원할 경우 다음과 같은 기술을 사용해야 합니다.원형 공식. 이를 통해 기본적으로 셀은 자체 내용을 기반으로 기능을 수행할 수 있습니다.
파일 > 옵션 > 수식으로 이동한 다음 Enable iterative calculation
. 반복 횟수를 으로 변경합니다 1
. 확인을 누르고 시트를 저장하세요.
=IF(A1<>"",IF(B1="",NOW(),B1),"")
설명:
첫 번째는 IF
원래 답변의 것과 유사합니다. 비어 있는지 확인합니다 A1
. <>
는 논리 연산자 의미입니다 not equal to
. 두 번째는 IF
자체적으로 확인하고 내용이 에 입력되면 실행됩니다 A1
. 비어 있으면 B1
현재 날짜와 시간을 입력하고 그렇지 않으면 기존 콘텐츠(원래 타임스탬프)를 출력합니다.
원래 답변
B1에서 이것을 시도해 볼 수 있습니다.
=IF(ISBLANK(A1),"",NOW())
설명:
ISBLANK
대상 셀에 입력이 있는지 테스트하는 논리 테스트입니다. TRUE
또는 중 하나를 반환합니다 FALSE
. IF
대상 셀이 비어 있으면 빈 문자열을 출력하도록 구조화되어 있습니다 . 입력이 있으면 A1
현재 시간과 날짜가 출력됩니다.
NOW()
시트가 다시 계산될 때마다 에서 출력되는 값이 현재 시간으로 변경된다는 점에 유의해야 합니다 .
참고자료:
답변2
모든 것에 VBA를 사용하는 것이 항상 현명한 것은 아니지만, 특히 행이 처음 입력된 시점뿐만 아니라 행이 변경될 때마다 추적하려는 경우에는 이것이 좋은 후보입니다. 타임스탬프 열이 있는 시트의 코드에 다음을 삽입합니다.
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Dim intersection As Range
' Change A:A,C:E to whatever range you want to watch.
Set intersection = Application.Intersect(Target, Me.Range("A:A,C:E"))
If Not intersection Is Nothing Then
Dim r As Range
For Each r In intersection.Rows
' Change B1 to whichever column is the timestamp.
r.EntireRow.Range("B1").Value = Now
Next
End If
Application.EnableEvents = True
End Sub
이 예에서는 A, C, D 및 E 열의 변경 사항을 감시하고 변경 사항이 발생하면 현재 날짜와 시간이 동일한 행의 B 열에 삽입됩니다.