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)

관련 도구

추가 리소스

대규모 날짜 처리(행 10,000개 이상)의 경우 성능 향상을 위해 파워 쿼리 또는 VBA 매크로를 사용하는 것이 좋습니다. Excel 기능은 대화형 사용에 최적화되어 있으며 대규모 데이터 세트로 인해 속도가 느려질 수 있습니다.