Power BI 필수 함수

경영정보시각화 자격증 실기 시험 대비 Power BI 필수 함수를 정리하였습니다.
숫자/집계/통계함수
  • J
문자열 함수
  • J
논리 함수
  • J
날짜 함수
  • J
필터 함수
  • J
기타
  • J

날짜 함수

Created by
  • J
    JINA
Created at
CALENDAR: 날짜 테이블 생성
1.
함수 정의 :
CALENDAR 함수는
일정 범위의 날짜를 생성하는 함수입니다. 이 함수는 주로 날짜 테이블을 만들 때 사용되며, 두 개의 인수인 시작 날짜와 종료 날짜를 받아 그 사이의 모든 날짜를 반환합니다.
2.
기본 구문:
CALENDAR(시작 날짜, 종료 날짜)
3.
예시 코드:
예를 들어, 2023년 1월 1일부터 2023년 12월 31일까지의 날짜 테이블을 만들고 싶다면 다음과 같이 작성할 수 있습니다.
CALENDAR(DATE(2023, 1, 1), DATE(2023, 12, 31))
이렇게 하면
2023년 1월 1일부터 2023년 12월 31일까지의 모든 날짜가 포함된 테이블이 생성됩니다.
4.
활용 사례:
매출 데이터를 분석할 때
특정 날짜 범위에 맞는 날짜 테이블을 생성하여, 데이터를 날짜별로 집계하거나 필터링할 수 있습니다.
연도별, 월별 또는 주별 데이터를 추출할 때 사용할 수 있습니다.
CALENDAR 함수는 특히 날짜 테이블을 통해 날짜별 데이터 분석 및 시각화를 용이하게 만드는 데 유용합니다. 이를 사용해 원하는 범위의 날짜를 포함한 테이블을 쉽게 생성할 수 있어, 데이터 모델링을 보다 간편하게 도와줍니다.
CALENDARAUTO: 모델에서 자동 날짜 테이블 생성
1.
함수 정의 :
CALENDARAUTO 함수는
데이터 모델 내의 날짜 데이터를 기반으로 자동으로 날짜 테이블을 생성합니다. 이 함수는 연속된 날짜 집합을 포함한 "Date"라는 단일 열이 있는 테이블을 반환하며, 이 테이블은 시간 인텔리전스 기능을 지원하는 데 필수적입니다
2.
기본 구문 :
CALENDARAUTO([fiscal_year_end_month])
3.
매개 변수 :
fiscal_year_end_month: 회계 연도의 종료 월을 지정하는 선택적 매개변수입니다. 1에서 12까지의 정수 값을 사용하며, 기본값은 12월입니다
4.
작동 방식 :
데이터 모델 내에서
가장 이른 날짜(MinDate)와 가장 늦은 날짜(MaxDate)를 찾습니다.
MinDate와 MaxDate를 기준으로 회계 연도의 시작과 끝을 포함하는 날짜 범위를 생성합니다.
5.
예시 코드 :
데이터 모델의
MinDate가 2010년 7월 1일이고 MaxDate가 2011년 6월 30일인 경우, CALENDARAUTO()2010년 1월 1일부터 2011년 12월 31일까지의 날짜를 반환합니다.
CALENDARAUTO(3)를 사용할 경우, 회계 연도 종료 월이 3월로 설정되어, 결과적으로 2010년 4월 1일부터 2012년 3월 31일까지의 날짜를 반환합니다
DATE: 날짜 생성
1.
함수 정의 :
DATE 함수는
연도, 월, 일 세 가지 숫자를 받아 특정 날짜를 생성하는 함수입니다. 이 함수는 주로 다른 숫자 형식의 값에서 날짜를 만들어야 할 때 유용합니다.
2.
기본 구문:
DATE(year, month, day)
3.
매개 변수 :
year: 날짜의 연도 (예: 2024)
month: 날짜의 월 (예: 10)
day: 날짜의 일 (예: 24)
4.
예시 코드 :
간단한 날짜 생성
DATE(2024, 10, 24)
이 코드는
2024년 10월 24일이라는 날짜를 생성합니다.
계산된 열에서 사용하기
만약 특정 연도, 월, 일 데이터가 각각의 열에 저장되어 있다면, DATE 함수를 사용해 날짜를 결합할 수 있습니다.
예를 들어,
Year, Month, Day라는 세 개의 열이 있을 때:
DATE([Year], [Month], [Day])
Year에 2024, Month에 10, Day에 24가 들어있다면, 이 결과는 2024년 10월 24일이 됩니다.
특정 날짜를 기준으로 날짜 생성
예를 들어, 현재 연도와 월에서 항상 1일을 날짜로 생성하고 싶다면:
DATE(YEAR(TODAY()), MONTH(TODAY()), 1)
이 코드는
이번 달(2024년 10월 이라면)의 1일을 생성합니다. (예: 2024년 10월 1일)
5.
요약 :
이처럼 DATE 함수는
숫자 값으로부터 원하는 날짜를 만들어내는 데 유용하며, 다양한 계산식에서 날짜를 동적으로 생성할 때 자주 사용됩니다.
DATEDIFF: 날짜 차이 계산
1.
함수 정의 :
DATEIFF 함수는
두 날짜 간의 차이를 계산하는 함수로, 일, 월, 분기, 연도 등의 단위로 차이를 구할 수 있습니다.
2.
기본 구문 :
DATEDIFF(<StartDate>, <EndDate>, <Interval>)
3.
매개 변수 :
StartDate: 시작 날짜
EndDate: 종료 날짜
Interval: 차이를 계산할 단위. 사용할 수 있는 값은
DAY, MONTH, QUARTER, YEAR, HOUR, MINUTE, SECOND 등이 있습니다.
4.
예시 코드 :
일 단위 차이 계산
DATEDIFF(DATE(2024, 1, 1), DATE(2024, 10, 24), DAY)
이 예시에서는 2024년 1월 1일부터 2024년 10월 24일까지의
일 수 차를 계산하며, 결과는 297이 됩니다.
월 단위 차이 계산
DATEDIFF(DATE(2024, 1, 1), DATE(2024, 10, 24), MONTH)
이 예시에서는 2024년 1월 1일부터 2024년 10월 24일까지의
월 수 차이를 계산하며, 결과는 9가 됩니다.
연 단위 차이 계산
DATEDIFF(DATE(2020, 5, 1), DATE(2024, 10, 24), YEAR)
이 예시에서는 2020년 5월 1일부터 2024년 10월 24일까지의
연 수 차이를 계산하며, 결과는 4가 됩니다.
5.
요약 :
DATEIFF 함수는
날짜 차이를 다양한 단위로 간편하게 계산할 수 있어, 두 날짜 간의 간격을 분석할 때 유용합니다.
DAY: 일 반환
1.
함수 정의 :
DAY 함수는
날짜에서 일(day) 값을 추출하는 함수입니다. 즉, 주어진 날짜의 '일(day)' 부분만을 가져오는 역할을 합니다. 예를 들어, 2024년 10월 24일이라는 날짜가 있을 때, DAY 함수는 그 날짜에서 "24"라는 값을 반환합니다.
2.
기본 구문 :
DAY(<date>)
3.
매개 변수 :
<date>: 일 값을 추출하고자 하는 날짜 또는 날짜를 반환하는 식입니다.
4.
예시 코드 :
(1)
정확한 날짜를 입력한 경우
DAY("2024-10-24")
이 식은
24를 반환합니다.
(2)
테이블의 날짜 열을 사용하는 경우
만약
Orders 테이블에 OrderDate라는 열이 있고, 그 열의 값 중 하나가 2024-10-24라면:
DAY(Orders[OrderDate])
이 식은 해당 날짜가 2024-10-24라면
24를 반환합니다.
(3)
TODAY 함수와 함께 사용하기
오늘 날짜의 일 값을 알고 싶을 때:
DAY(TODAY())
오늘이 2024-10-24라면 이 식은 24를 반환합니다.
5.
요약 :
DAY 함수는 특정 날짜의
일(day) 값을 추출하여 요약 보고서나 월별 트렌드 분석을 할 때 유용하게 사용할 수 있습니다.
EDATE: 지정된 개월 전후 날짜 반환
1.
함수 정의 :
EDATE 함수는
날짜를 기준으로 특정 개월 수를 더하거나 빼는 데 사용됩니다. 즉, 시작 날짜에서 원하는 개월 수만큼 이전 또는 이후의 날짜를 반환하는 함수입니다.
2.
기본 구문 :
EDATE(<start_date>, <months>)
3.
매개 변수 :
<start_date>: 기준이 되는 날짜입니다.
<months>: 더하거나 뺄 개월 수입니다. 양수이면 미래 날짜를 반환하고, 음수이면 과거 날짜를 반환합니다.
4.
예시 코드 :
(1)
미래 날짜 계산하기
예를 들어, 기준 날짜가 "2024-10-24"이고, 3개월 뒤의 날짜를 알고 싶다면:
EDATE("2024-10-24", 3)
결과 :
이 함수는
"2025-01-24"를 반환합니다.
(2)
과거 날짜 계산하기
기준 날짜가 "2024-10-24"이고, 2개월 전의 날짜를 알고 싶다면:
EDATE("2024-10-24", -2)
결과"
이 함수는
"2024-08-24"를 반환합니다.
5.
요약 :
이 함수는 주로 월 단위로 구분해야 하는 계산, 예를 들어
구독 만료일 계산, 월별 계약 기간 산정, 대출 상환 일자 계산 등에 유용하게 사용할 수 있습니다.
EOMONTH: 월 말 날짜 반환
1.
함수 정의 :
EOMONTH 함수는
주어진 날짜로부터 지정한 개월 수 이후의 마지막 날을 반환하는 함수입니다. 쉽게 말해, 특정 날짜 기준으로 몇 개월 뒤(또는 이전)의 마지막 날이 언제인지 계산할 때 사용됩니다.
2.
기본 구문 :
EOMONTH(날짜, 개월 수)
3.
매개 변수 :
날짜: 기준이 되는 날짜입니다.
개월 수: 기준 날짜로부터 몇 개월 뒤(혹은 이전)를 계산할지 정하는 숫자입니다. 양수는 미래를, 음수는 과거를 의미합니다.
4.
예시 코드 :
만약
2024-10-25가 기준 날짜라고 가정해보겠습니다.
(1)
다음 달의 마지막 날을 구할 때
EOMONTH("2024-10-25", 1)

결과:
2024-11-30
(2)
세 달 후의 마지막 날을 구할 때
EOMONTH("2024-10-25", 3)
결과:
2025-01-31
(3)
두 달 전의 마지막 날을 구할 때
EOMONTH("2024-10-25", -2)
결과:
2024-08-31
5.
요약 :
이 함수는
주로 월별 보고서 작성, 청구서 마감일 계산 등 일정 관리나 회계에서 유용하게 쓰입니다.
HOUR: 시간 반환
1.
함수 정의 :
HOUR 함수는 날짜 및 시간 값에서
"시간(hour)" 부분만 추출하는 함수입니다. 주로 시간 데이터를 기반으로 분석하거나 특정 시간대의 데이터를 필터링할 때 유용합니다.
2.
기본 구문 :
HOUR(<datetime>)
3.
매개 변수 :
datetime: 날짜와 시간 값이 포함된 열, 또는 시간 값을 반환하는 표현식.
4.
예시 코드 :
(1) 기본 사용법
만약
OrderDateTime이라는 열에 주문 날짜와 시간이 포함되어 있다면, HOUR 함수를 사용하여 각 주문의 시간을 추출할 수 있습니다.
OrderHour = HOUR([OrderDateTime])
OrderDateTime에
2024-10-25 14:35:00이 포함되어 있다면, OrderHour는 14를 반환합니다.
(2) 특정 시간대의 데이터 필터링
HOUR 함수를 이용해서 오전 9시부터 11시 사이(즉, 시간 값이 9, 10, 11인 경우) 발생한 주문
MorningOrders = CALCULATE(
COUNT('Orders'[OrderID]),
HOUR('Orders'[OrderDateTime]) >= 9,
HOUR('Orders'[OrderDateTime]) <= 11
)

데이터 처리 과정:
OrderID 1: 2024-10-25 08:45:00 - HOUR 값은 8이므로 범위에 해당되지 않음.
OrderID 2: 2024-10-25 09:15:00 - HOUR 값은 9이므로 범위에 해당됨.
OrderID 3: 2024-10-25 09:45:00 - HOUR 값은 9이므로 범위에 해당됨.
OrderID 4: 2024-10-25 10:30:00 - HOUR 값은 10이므로 범위에 해당됨.
OrderID 5: 2024-10-25 11:50:00 - HOUR 값은 11이므로 범위에 해당됨.
OrderID 6: 2024-10-25 12:05:00 - HOUR 값은 12이므로 범위에 해당되지 않음.
결과:
MorningOrders의 값은 4가 됩니다.
즉, 오전 9시부터 11시 사이에 이루어진 주문은 OrderID 2, 3, 4, 5로 총 4건입니다.
5.
요약 :
이렇게 HOUR 함수를 사용하면
특정 시간대의 데이터를 쉽게 필터링하고 분석할 수 있습니다.
MINUTE: 분 반환
1.
함수 정의 :
MINUTE 함수는
시간 값에서 "분" 부분을 추출하는 함수입니다. 이 함수는 주로 시간 데이터를 분석할 때 특정 시간 내에 발생한 이벤트의 분 단위 패턴을 파악하거나, 시간 값을 분 단위로 비교하고 싶을 때 유용하게 사용할 수 있습니다.
2.
기본 구문 :
MINUTE(<datetime>)
3.
매개 변수 :
<datetime>: 시간 값을 포함한 날짜 및 시간 열 또는 시간 형식의 값입니다.
4.
예시 코드 :
(1) 기본 사용 예제
MINUTE("2024-10-25 14:35:20")
결과:
35입니다.
여기서 14:35:20에서 35라는 "분" 값을 추출한 것입니다.
(2) 데이터 열에 적용
예를 들어, Sales 테이블이 있고,
SalesTime이라는 열에 다음과 같은 값이 있다고 가정해 봅시다:
MinutesExtracted = MINUTE(Sales[SalesTime])
결과:
각 SalesTime 값에서 "분" 단위를 추출한 새로운 열 MinutesExtracted가 생성됩니다.
첫 번째 행: SalesTime이 09:15:00이므로 MinutesExtracted는 15가 됩니다.
두 번째 행: 12:30:45에서 30을 추출합니다.
세 번째 행: 18:45:30에서 45를 추출합니다.
네 번째 행: 21:05:10에서 5를 추출합니다.
5.
요약 :
이렇게 MINUTE 함수는 각 시간 값에서 분 단위를 추출하여, 데이터를 분 단위로 분석하거나
필터링할 때 활용할 수 있습니다.
MONTH: 월 반환
1.
함수 정의 :
MONTH 함수는
날짜에서 월(month) 값을 추출하는 함수입니다. 이 함수를 사용하면 특정 날짜가 속한 월을 숫자로 반환할 수 있습니다. 예를 들어, 1월은 1, 12월은 12로 반환됩니다.
2.
기본 구문 :
MONTH(<date>)
3.
매개 변수 :
<date>: 월을 추출할 날짜를 지정합니다.
4.
예시 코드 :
(1) 특정 날짜에서 월을 추출:
MONTH(DATE(2024, 10, 25))
결과:
이 경우,
10을 반환합니다. (날짜는 2024년 10월 25일이므로 10월)
(2) 테이블에서 날짜 열이 있을 때,
여기서 각 주문 날짜(OrderDate)에서 월을 추출하는 새로운 열을 추가하고 싶다면,
Month_Column = MONTH(Orders[OrderDate])
적용 결과:
이렇게 Month_Column이 추가되어, OrderDate 열의 각 날짜에서 월을 추출한 결과가 표시됩니다.
NETWORKDAYS: 영업일 계산
1.
함수 정의 :
NETWORKDAYS 함수는
두 날짜 사이의 근무일 수를 계산하는 데 사용되는 함수입니다. 이 함수는 주말(기본적으로 토요일과 일요일)과 지정된 휴일을 제외한 근무일 수를 반환합니다.
2.
기본 구문 :
NETWORKDAYS 함수의 기본 구문은 다음과 같습니다:
NETWORKDAYS(<start_date>, <end_date>[, <weekend>, <holidays>])
3.
매개 변수 :
start_date: 시작 날짜
end_date: 종료 날짜
weekend: (선택적) 주말로 간주할 요일을 지정하는 숫자
holidays: (선택적) 휴일로 간주할 날짜들의 테이블
4.
예시 코드 :
(1) 기본 사용
NETWORKDAYS(DATE(2024, 1, 1), DATE(2024, 1, 31))
이 예시의
결과는 23입니다.2024년 1월은 총 31일이지만, NETWORKDAYS 함수는 주말(토요일과 일요일)을 제외합니다.
2024년 1월에는 총 31일
4개의 토요일 (1/6, 1/13, 1/20, 1/27)
4개의 일요일 (1/7, 1/14, 1/21, 1/28)
따라서 31 - (4 + 4) = 23일의 근무일이 계산됩니다.
(2) 휴일 지정
NETWORKDAYS(
DATE(2024, 1, 1),
DATE(2024, 1, 31),
1,
{ DATE(2024, 1, 1) }
)

이 예시의
결과는 22입니다.이 경우, 기본 사용 예시와 동일한 기간을 계산하지만, 추가로 1월 1일을 휴일로 지정했습니다. 따라서 예시 1의 결과인 23일에서 1월 1일(휴일로 지정)을 추가로 제외
그 결과 23 - 1 = 22일의 근무일이 계산됩니다.
이 예시들은 NETWORKDAYS 함수가 어떻게 주말과 지정된 휴일을 고려하여 근무일 수를 계산하는지 잘 보여줍니다.
5.
요약 :
이 함수를 사용하면 복잡한 날짜 계산을 쉽게 수행할 수 있어, 프로젝트 기간 산정이나 급여 계산 등 다양한 비즈니스 상황에서 유용하게 활용될 수 있습니다.
NOW: 현재 날짜 및 시간 반환 / TODAY: 현재 날짜 반환
1.
함수 정의 :
NOW 함수와 TODAY 함수는 둘 다 현재 날짜와 관련된 정보를 반환하는 DAX 함수이지만, 반환하는 결과가 약간 다릅니다.
(1)
NOW 함수:
현재
날짜와 시간을 반환합니다.
예를 들어, 오늘이 2024년 10월 24일이고, 시간이 오전 10시 30분이라면 NOW() 함수는 2024-10-24 10:30:00과 같이 날짜와 시간을 함께 보여줍니다.
(2)
TODAY 함수:
현재 날짜만 반환합니다.
예를 들어, 오늘이 2024년 10월 24일이라면 TODAY() 함수는 2024-10-24와 같이 시간 정보 없이 날짜만 보여줍니다.
2.
기본 구문 :
NOW(): 현재 "날짜와 시간"을 반환 (예: 2024-10-24 10:30:00)
TODAY(): 현재 "날짜"만 반환 (예: 2024-10-24)
따라서, 시간까지 포함해서 정밀한 계산이 필요할 때는 NOW 함수를, 날짜 단위로 계산할 때는 TODAY 함수를 사용하는 것이 좋습니다.
3.
예시 코드 :
실제 데이터를 사용해 NOW 함수와 TODAY 함수의 차이를 설명해 보겠습니다. 아래와 같은 예시 테이블을 가정해보죠.
예시 테이블: Projects
(1) NOW 함수 예시: 현재 시간까지 포함한 작업 진행 시간 계산
현재 시각이 2024년 10월 24일 오전 10시 30분이라고 가정합니다.
NOW 함수를 사용하여 Start Date부터 현재 시각까지의 진행 시간을 계산할 수 있습니다.
ElapsedTime = NOW() - Projects[Start Date]
ElapsedTime 결과:
NOW 함수는 날짜뿐만 아니라 시간까지 반영하여,
프로젝트가 시작된 이후 얼마나 시간이 흘렀는지를 정확히 계산합니다.
(2) TODAY 함수 예시: 만료일까지 남은 날짜 계산
End Date와 현재 날짜만을 사용해서 프로젝트가 완료될 때까지 남은 날 수를 계산한다고 가정.
TODAY 함수는 시간 정보 없이 현재 날짜만을 반환하기 때문에, 날 단위 계산에 적합합니다.
DaysUntilEnd = Projects[End Date] - TODAY()
DaysUntilEnd 결과:
TODAY 함수는 날짜만 사용하여 오늘부터 프로젝트가 끝날 때까지 며칠이 남았는지를 계산해줍니다.
4.
차이점 요약 :
NOW(): 날짜와 시간을 사용해 작업이 언제 시작되었는지와 현재까지의 시간을 포함한 정확한 진행 시간을 계산할 때 유용합니다.
TODAY(): 현재 날짜만으로 작업이 끝날 때까지 남은 날 수를 계산하는 등 날짜 단위의 간단한 계산에 적합합니다.
WEEKNUM: 주 번호 반환
1.
함수 정의 :
WEEKNUM 함수는
특정 날짜가 속한 주의 번호를 반환하는 함수입니다. 즉, 주어진 날짜가 해당 연도에서 몇 번째 주에 속하는지를 알려줍니다.
2.
기본 구문 :
WEEKNUM(<date>[, <return_type>])
3.
매개 변수 :
<date>: 주 번호를 알고 싶은 날짜입니다.
<return_type>: (선택 사항) 주의 시작 요일을 설정합니다. 1 또는 2를 선택할 수 있으며, 기본값은 1입니다.
1(기본값): 주의 시작을 일요일로 설정합니다.
2: 주의 시작을 월요일로 설정합니다.
4.
예시 코드 :
(1) 기본 사용 예시
WEEKNUM(DATE(2024, 10, 24))
결과:
43

2024년 10월 24일은 2024년의 43번째 주에 해당합니다. 기본값인 일요일 시작 기준으로 계산된 결과입니다.
(2) 월요일을 주의 시작으로 설정하는 예시
WEEKNUM(DATE(2024, 10, 24), 2)
결과:
43

2024년 10월 24일 역시 월요일 시작 기준으로 43번째 주에 속합니다.
5.
요약 :
WEEKNUM 함수는 요일에 따라 주를 어떻게 나누는지에 차이가 있지만,
해당 날짜가 속한 주를 쉽게 파악할 수 있게 해줍니다.
YEAR: 연도 반환
1.
함수 정의 :
YEAR 함수는
특정 날짜 값에서 연도를 추출하는 함수입니다. 이 함수를 사용하면 날짜 데이터에서 연도만 따로 떼어낼 수 있습니다.
2.
기본 구문 :
YEAR(<date>)
3.
매개 변수 :
<date>: 연도를 추출하고자 하는 날짜 값입니다. 이 날짜는 DATE 함수로 생성되거나 날짜/시간 데이터 형식이어야 합니다.
4.
예시 코드 :
(1) 기본 사용법
만약 2024-10-24라는 날짜에서 연도를 추출하고 싶다면:
YEAR("2024-10-24")
결과는 2024
가 됩니다.
(2) 테이블 예시
테이블에 OrderDate라는 열이 있고, 여기서 각 주문의 연도를 추출하고 싶다면:
OrderYear = YEAR(Sales[OrderDate])
이렇게 하면
OrderDate 열의 각 날짜에서 연도만 추출하여 OrderYear라는 새로운 열에 표시됩니다.
5.
요약 :
이 함수는 주로 시간 관련 분석에서
특정 연도별 데이터를 집계하거나 필터링할 때 유용합니다. 예를 들어, 특정 연도에 해당하는 매출을 계산하거나, 연도별로 데이터의 변화를 분석할 때 활용할 수 있습니다.