Tutorial
Excel 타임스탬프를 처리하는 방법
소개
Excel에서는 날짜를 1900년 1월 1일(Mac에서는 1904년 1월 1일) 이후의 일 수를 나타내는 일련 번호로 저장합니다. Excel에서 타임스탬프를 처리하는 방법을 이해하는 것은 데이터 마이그레이션, API 통합 및 날짜 기반 분석 작업에 필수적입니다. 이 가이드에서는 변환 기술, 계산 및 모범 사례를 다룹니다.
엑셀 날짜 시스템 이해하기
Excel에서 날짜를 저장하는 방법
Excel에서는 두 가지 날짜 시스템을 사용합니다.
1900 날짜 체계(Windows - 기본값)
- 1일 = 1900년 1월 1일
- 소수점은 하루 중 시간을 나타냅니다(예: 0.5 = 정오).
- 버그 포함: Excel은 1900을 윤년으로 처리합니다(그렇지 않았습니다).
1904 날짜 체계(Mac)
- 1일차 = 1904년 1월 2일
- 1900년 윤년 버그를 수정하도록 설계되었습니다.
- 이전 Mac 버전의 Excel에서 기본적으로 사용됩니다.
중요: 변환을 수행하기 전에 Excel 파일이 어떤 날짜 체계를 사용하는지 항상 확인하세요. 동일한 통합 문서에 날짜 시스템이 혼합되어 있으면 심각한 오류가 발생할 수 있습니다.
일련번호 구조
Excel Date Number = Days since epoch + Fraction of day
Example: 44927.5
= 44927 (days since Jan 1, 1900)
+ 0.5 (half day = 12:00 PM)
= January 1, 2023, 12:00 PM
기본 변환
Excel 날짜를 Unix 타임스탬프로 변환
방법 1: Excel 수식
Excel 일련 날짜를 Unix 타임스탬프로 변환(1970-01-01 이후 초):
excel
=(A1 - DATE(1970,1,1)) * 86400
Where:
A1 = Excel serial date (e.g., 44927.5)
DATE(1970,1,1) = Unix epoch in Excel (25569)
86400 = seconds per day
프로 팁: 더 나은 가독성을 위해 명명된 범위를 사용하세요.
excel
> =EPOCH_DATE * 86400
>
```> EPOCH_DATE는 25569로 정의됩니다.
### 방법 2: Excel VBA 함수
변환을 위해 재사용 가능한 VBA 함수를 만듭니다.
vba Function ExcelToUnix(excelDate As Double) As Long ' Convert Excel serial date to Unix timestamp Dim epochDate As Date epochDate = #1/1/1970# ExcelToUnix = (excelDate - epochDate) * 86400 End Function
### 방법 3: 온라인 변환기
수식 없이 즉시 변환하려면 [Excel 타임스탬프 변환기](/excel-timestamp) 도구를 사용하세요.
## Unix 타임스탬프를 Excel 날짜로
### 방법 1: Excel 수식
Unix 타임스탬프를 Excel 일련 날짜로 변환:
excel =(A1 / 86400) + DATE(1970,1,1)
Where: A1 = Unix timestamp in seconds 86400 = seconds per day DATE(1970,1,1) = Unix epoch in Excel (25569)
### 방법 2: Excel VBA 함수
vba Function UnixToExcel(unixTimestamp As Long) As Date ' Convert Unix timestamp to Excel date Dim epochDate As Date epochDate = #1/1/1970# UnixToExcel = (unixTimestamp / 86400) + epochDate End Function
## 날짜 계산
## 날짜 산술
### 일 더하기 및 빼기
excel ' Add 7 days to a date =A1 + 7
' Subtract 30 days from a date =A1 - 30
' Calculate days between two dates =B1 - A1
### 시간 더하기 및 빼기
excel ' Add 4 hours to a datetime =A1 + (4/24)
' Add 30 minutes to a datetime =A1 + (30/1440)
' Add 45 seconds to a datetime =A1 + (45/86400)
' Where: 24 = hours per day 1440 = minutes per day 86400 = seconds per day
> **모범 사례:** 하드코딩을 방지하려면 시간 단위에 대한 셀 참조를 사용하세요.
>
excel
=A1 + (B1/86400)
### 영업일 계산
excel ' Calculate business days between two dates (excludes weekends) =NETWORKDAYS(A1, B1)
' Calculate business days excluding holidays =NETWORKDAYS(A1, B1, C1:C10)
> **국제 버전:** 사용자 지정 주말 패턴에는 NETWORKDAYS.INTL을 사용합니다.
>
excel
=NETWORKDAYS.INTL(A1, B1, 11)
## 엑셀 날짜 함수
## 필수 날짜 기능
### 현재 날짜 및 시간
excel ' Today's date (no time) =TODAY()
' Current date and time =NOW()
' Current time only =NOW() - TODAY()
' Extract time from datetime =MOD(A1, 1)
### 날짜 구성 요소 추출
excel ' Extract year =YEAR(A1)
' Extract month number (1-12) =MONTH(A1)
' Extract day of month =DAY(A1)
' Extract hour (0-23) =HOUR(A1)
' Extract minute (0-59) =MINUTE(A1)
' Extract second (0-59) =SECOND(A1)
### 구성 요소에서 날짜 만들기
excel ' Create date from year, month, day =DATE(2023, 1, 15)
' Create time from hour, minute, second =TIME(14, 30, 0)
' Combine date and time =DATE(2023, 1, 15) + TIME(14, 30, 0)
### 평일 작업
excel ' Get day of week (1=Sunday, 7=Saturday) =WEEKDAY(A1)
' Get day of week name =TEXT(A1, "dddd")
' Get weekday name (3-letter abbreviation) =TEXT(A1, "ddd")
' ISO week number =ISOWEEKNUM(A1)
' Week number in year =WEEKNUM(A1)
## 고급 날짜 작업
## 날짜 반올림 및 잘림
### 기간 시작으로 자르기
excel ' Truncate to start of day (remove time) =INT(A1)
' Round to nearest hour =ROUND(A1*24, 0)/24
' Round to nearest day =ROUND(A1, 0)
' Round down to start of month =EOMONTH(A1, -1) + 1
' Round down to start of year =DATE(YEAR(A1), 1, 1)
### 기말 계산
excel ' End of current month =EOMONTH(A1, 0)
' End of next month =EOMONTH(A1, 1)
' End of previous month =EOMONTH(A1, -1)
' End of current year =DATE(YEAR(A1), 12, 31)
## 조건부 날짜 논리
### 날짜와 함께 IF 사용
excel ' Check if date is in the past =IF(A1 < TODAY(), "Past", "Future")
' Check if date is within last 30 days =IF(AND(A1 >= TODAY()-30, A1 <= TODAY()), "Recent", "Old")
' Calculate age =IF(MONTH(TODAY()) >= MONTH(A1), YEAR(TODAY()) - YEAR(A1), YEAR(TODAY()) - YEAR(A1) - 1)
### 복잡한 날짜 논리
excel ' Calculate fiscal year (starts July 1) =IF(MONTH(A1) >= 7, YEAR(A1) + 1, YEAR(A1))
' Calculate quarter =ROUNDUP(MONTH(A1)/3, 0)
' Add business days (skipping weekends) =WORKDAY(A1, 10)
## 날짜 형식
## 사용자 정의 날짜 형식
### 형식 코드
```text
Format Code Examples:
d Day (1-31)
dd Day with leading zero (01-31)
ddd Day abbreviation (Mon)
dddd Full day name (Monday)
m Month (1-12)
mm Month with leading zero (01-12)
mmm Month abbreviation (Jan)
mmmm Full month name (January)
yy 2-digit year (23)
yyyy 4-digit year (2023)
h Hour (0-23)
hh Hour with leading zero (00-23)
m Minute (0-59)
mm Minute with leading zero (00-59)
s Second (0-59)
ss Second with leading zero (00-59)
AM/PM AM/PM indicator
형식 적용
excel
' Apply date format via formula
=TEXT(A1, "yyyy-mm-dd")
' Apply datetime format with seconds
=TEXT(A1, "yyyy-mm-dd hh:mm:ss")
' Custom format: "January 15, 2023 at 2:30 PM"
=TEXT(A1, "mmmm dd, yyyy at h:mm AM/PM")
' ISO 8601 format
=TEXT(A1, "yyyy-mm-ddThh:mm:ss")
중요: TEXT()는 문자열 값을 반환합니다. 숫자 연산을 먼저 사용한 다음 마지막에 형식을 지정합니다.
일반적인 함정
날짜 시스템 충돌
1900 대 1904 날짜 시스템
문제: 날짜 시스템을 혼합하면 심각한 계산 오류가 발생합니다.
excel
' Check if workbook uses 1904 date system
' Excel Options > Advanced > When calculating this workbook > Use 1904 date system
해결책: 날짜 작업을 하기 전에 항상 도구 > 옵션 > 고급을 사용하여 날짜 시스템 설정을 확인하세요.
윤년 버그(1900)
Excel에서는 1900년 2월 29일(존재하지 않음)을 포함하여 1900년을 윤년으로 잘못 처리합니다.
excel
' March 1, 1900 in Excel
=DATE(1900, 3, 1) ' Returns 61 (correct)
' February 28, 1900 in Excel
=DATE(1900, 2, 28) ' Returns 59 (correct)
' February 29, 1900 (DOESN'T EXIST)
=DATE(1900, 2, 29) ' Returns 60 (incorrect - this day never happened)
해결 방법: 1904 날짜 시스템은 이 버그를 수정하지만 Windows Excel 파일과의 호환성 문제를 발생시킵니다.
시간대 문제
Excel은 시간대 정보 없이 날짜를 저장합니다.
excel
' Current time in Excel
=NOW() ' Returns local system time
모범 사례: UTC 타임스탬프를 별도의 열에 저장하고 변환을 위한 시간대 메타데이터를 유지합니다.
텍스트 형식과 날짜 형식
문제: 텍스트로 저장된 날짜를 계산에 사용할 수 없습니다.
excel
' Check if cell contains date or text
=ISNUMBER(A1) ' TRUE for dates, FALSE for text
' Convert text to date
=DATEVALUE("2023-01-15")
=TIMEVALUE("14:30:00")
' Parse combined date and time text
=DATEVALUE("2023-01-15") + TIMEVALUE("14:30:00")
성능 최적화
계산 성능
휘발성 함수를 피하세요
문제: NOW() 및 TODAY()와 같은 함수는 변경될 때마다 다시 계산하므로 대규모 통합 문서의 속도가 느려집니다.
해결책: 휘발성 함수를 정적 셀에 저장합니다.
excel
> ' BAD: Every row recalculates
> =IF(A1 > NOW(), "Future", "Past")
>
> ' GOOD: Calculate once in cell B1
> B1: =NOW()
> A2: =IF(A1 > $B$1, "Future", "Past")
>
```>
> ### 명명된 범위 사용
>
>
excel
' Define named ranges (Formulas > Name Manager) EPOCH_DATE = 25569 SECONDS_PER_DAY = 86400
' Use in formulas =(A1 - EPOCH_DATE) * SECONDS_PER_DAY
> **이점:** 명명된 범위는 가독성을 높이고 수식을 더 쉽게 유지 관리할 수 있도록 해줍니다.
### 일괄 작업을 위한 배열 공식
excel ' Convert multiple Unix timestamps at once (Excel 365) =A2:A100/86400 + DATE(1970,1,1)
' Calculate ages for a range =YEAR(TODAY()) - YEAR(A2:A100)
## 통합 예
## CSV로 내보내기
Excel 날짜를 CSV로 내보내는 경우:
excel ' Format dates as ISO 8601 before exporting =TEXT(A1, "yyyy-mm-ddThh:mm:ss")
> **모범 사례:** 날짜 형식을 보존하려면 UTF-8 인코딩을 사용하여 CSV로 저장하세요.
## API에서 가져오기
API에서 JSON 날짜를 구문 분석합니다.
excel ' Assuming cell A1 contains: 1673761800 (Unix timestamp) ' Convert to Excel date =(A1/86400) + DATE(1970,1,1)
' Format as readable date =TEXT((A1/86400) + DATE(1970,1,1), "yyyy-mm-dd hh:mm:ss")
## 데이터베이스 통합
SQL 데이터베이스 작업:
excel ' Prepare date for SQL INSERT =TEXT(A1, "yyyy-mm-dd hh:mm:ss") ' Returns: "2023-01-15 14:30:00"
' Convert SQL DATETIME to Excel =DATEVALUE(LEFT(A1, 10)) + TIMEVALUE(MID(A1, 12, 8))
## 모범 사례 요약
## 날짜 처리 체크리스트
```text
✅ Always verify date system (1900 vs 1904) before calculations
✅ Use named ranges for constants (EPOCH_DATE, SECONDS_PER_DAY)
✅ Store volatile function results (NOW(), TODAY()) in static cells
✅ Use TEXT() only for final display formatting
✅ Validate date formats before calculations (ISNUMBER, DATEVALUE)
✅ Use NETWORKDAYS for business day calculations
✅ Apply consistent date formatting across workbooks
✅ Document date assumptions (timezones, epoch references)
✅ Test edge cases (leap years, month boundaries)
❌ Don't mix text and date formats in calculations
❌ Don't use volatile functions in large datasets
❌ Don't assume dates are in UTC without documentation
❌ Don't hardcode timezone offsets in formulas
❌ Don't ignore the 1900 leap year bug for historical dates
일반적인 문제 해결
문제: 날짜가 숫자로 표시됩니다.
excel
' Solution 1: Format as date
' Select cells > Right-click > Format Cells > Date
' Solution 2: Use TEXT() function
=TEXT(A1, "yyyy-mm-dd")
' Solution 3: Check for text dates
' If ISNUMBER(A1) returns FALSE, use:
=DATEVALUE(A1)
문제: 잘못된 날짜 계산
excel
' Check 1: Verify date system
' Excel Options > Advanced > Use 1904 date system
' Check 2: Ensure consistent units
' Days: =A1 + 7
' Hours: =A1 + (4/24)
' Minutes: =A1 + (30/1440)
' Seconds: =A1 + (45/86400)
' Check 3: Verify date components
' Ensure DATE() has correct arguments: YEAR, MONTH, DAY
문제: 시간대 변환 오류
excel
' Solution: Maintain separate timezone column
A1: Excel timestamp
B1: Timezone offset (e.g., -5 for EST)
C1: =A1 + (B1/24)
관련 도구
- Excel 타임스탬프 변환기 - Excel 일련 날짜와 Unix 타임스탬프 간 즉시 변환
- 타임스탬프 형식 변환기 - 여러 타임스탬프 형식 간 변환
- 날짜 계산기 - 날짜에서 일, 주, 월을 더하거나 뺍니다.
- 현재 타임스탬프 - 현재 타임스탬프를 여러 형식으로 가져옵니다.
- Unix 타임스탬프 변환기 - Unix 타임스탬프를 날짜로 변환
추가 리소스
대규모 날짜 처리(행 10,000개 이상)의 경우 성능 향상을 위해 파워 쿼리 또는 VBA 매크로를 사용하는 것이 좋습니다. Excel 기능은 대화형 사용에 최적화되어 있으며 대규모 데이터 세트로 인해 속도가 느려질 수 있습니다.