DAX(데이터 분석 식)에는 시간 경과에 따른 데이터를 집계하고 비교하기 위한 35개의 함수가 있습니다. DAX의 날짜 및 시간 함수와 달리 시간 인텔리전스 함수는 Excel에서 실제로 유사한 기능이 없습니다. 이는 시간 인텔리전스 함수가 피벗 테이블 및 파워 뷰 시각화에서 선택한 컨텍스트에 따라 지속적으로 변경되는 데이터로 작동하기 때문입니다.
시간 인텔리전스 함수를 사용하려면 데이터 모델에 날짜 테이블이 포함되어 있어야 합니다. 날짜 테이블에는 데이터에 포함된 각 연도의 매일 한 행이 있는 열이 있어야 합니다. 이 열은 날짜 열로 간주됩니다(원하는 이름을 지을 수 있음). 많은 시간 인텔리전스 함수에서 보고서의 필드로 선택한 날짜에 따라 계산하려면 날짜 열이 필요합니다. 예를 들어 CLOSINGBALANCEQTR 함수를 사용하여 마감 분기말 잔액을 계산하는 측정값이 있는 경우 Power Pivot에서 분기 말이 실제로 언제인지 알기 위해서는 날짜 테이블의 날짜 열을 참조하여 분기의 시작과 종료 시기를 알아야 합니다. 날짜 테이블에 대한 자세한 내용은 Excel의 Power Pivot에서 날짜 테이블 이해 및 만들기를 참조하세요.
함수
단일 날짜를 반환하는 함수
이 범주의 함수는 단일 날짜를 반환합니다. 그런 다음 결과를 다른 함수에 대한 인수로 사용할 수 있습니다.
이 범주의 처음 두 함수는 현재 컨텍스트의 Date_Column에서 첫 번째 또는 마지막 날짜를 반환합니다. 이 기능은 특정 유형의 트랜잭션이 있는 첫 번째 또는 마지막 날짜를 찾으려는 경우에 유용할 수 있습니다. 이 함수는 하나의 인수인 날짜 테이블의 날짜 열 이름만 사용합니다.
이 범주의 다음 두 함수는 식에 비어 있지 않은 값이 있는 첫 번째 또는 마지막 날짜(또는 다른 열 값도 포함)를 찾습니다. 이는 인벤토리와 같이 마지막 인벤토리 양을 얻고 마지막 인벤토리가 언제 사용되었는지 알 수 없는 상황에서 가장 자주 사용됩니다.
- FIRSTNONBLANK (Date_Column, Expression)
- LASTNONBLANK (Date_Column, Expression)
단일 날짜를 반환하는 추가 6개의 함수는 계산의 현재 컨텍스트 내에서 월, 분기 또는 연도의 첫 번째 또는 마지막 날짜를 반환하는 함수입니다.
- STARTOFMONTH (Date_Column)
- STARTOFQUARTER (Date_Column)
- STARTOFYEAR (Date_Column [,YE_Date])
- 월말 (Date_Column)
- 분기 종료 (Date_Column)
- ENDOFYEAR (Date_Column [,YE_Date])
날짜 테이블을 반환하는 함수
날짜 테이블을 반환하는 16개의 시간 인텔리전스 함수가 있습니다. 대부분의 경우 이러한 함수는 CALCULATE 함수에 대한 SetFilter 인수로 사용됩니다. DAX의 모든 시간 인텔리전스 함수와 마찬가지로 각 함수는 날짜 열을 인수 중 하나로 사용합니다.
이 범주의 처음 8개 함수는 현재 컨텍스트의 날짜 열로 시작합니다. 예를 들어 피벗 테이블에서 측정값을 사용하는 경우 열 레이블이나 행 레이블에 월 또는 연도가 있을 수 있습니다. 순효과는 날짜 열이 현재 컨텍스트의 날짜만 포함하도록 필터링된다는 것입니다. 그런 다음 이러한 8개 함수는 현재 컨텍스트를 시작으로 이전(또는 다음)일, 월, 분기 또는 연도를 계산하고 해당 날짜를 단일 열 테이블 형식으로 반환합니다. "previous" 함수는 현재 컨텍스트의 첫 번째 날짜부터 뒤로 작동하고 "next" 함수는 현재 컨텍스트의 마지막 날짜부터 앞으로 이동합니다.
- 이전 일( Date_Column)
- PREVIOUSMONTH (Date_Column)
- PREVIOUSQUARTER (Date_Column)
- PREVIOUSYEAR (Date_Column [,YE_Date])
- 다음날 (Date_Column)
- NEXTMONTH (Date_Column)
- 다음 분기 (Date_Column)
- NEXTYEAR (Date_Column [,YE_Date])
이 범주의 다음 4개 함수는 비슷하지만 이전(또는 다음) 기간을 계산하는 대신 "월간 누계"(또는 분기 누계, 연도 누계 또는 전년도 동일 기간)인 기간의 날짜 집합을 계산합니다. 이러한 함수는 모두 현재 컨텍스트의 마지막 날짜를 사용하여 계산을 수행합니다. SAMEPERIODLASTYEAR에서는 현재 컨텍스트에 연속된 날짜 집합이 포함되어야 합니다. 현재 컨텍스트가 연속된 날짜 집합이 아닌 경우 SAMEPERIODLASTYEAR는 오류를 반환합니다.
- DATESMTD (Date_Column)
- DATESQTD (Date_Column)
- DATESYTD (Date_Column [,YE_Date])
- SAMEPERIODLASTYEAR (Date_Column)
이 범주의 마지막 4개 함수는 좀 더 복잡하면서도 좀 더 강력합니다. 이러한 함수는 현재 컨텍스트에 있는 날짜 집합에서 새 날짜 집합으로 이동하는 데 사용됩니다.
- DATEADD (Date_Column, Number_of_Intervals, interval)
- DATESBETWEEN (Date_Column, Start_Date, End_Date)
- DATESINPERIOD (Date_Column, Start_Date, Number_of_Intervals, interval)
- PARALLELPERIOD (Date_Column, Number_of_Intervals, interval)
DATESBETEN은 지정된 시작 날짜와 종료 날짜 사이의 날짜 집합을 계산합니다. 나머지 세 가지 함수는 현재 컨텍스트에서 몇 개의 시간 간격을 이동합니다. 간격은 일, 월, 분기 또는 연도일 수 있습니다. 이러한 함수를 사용하면 다음 중 하나를 사용하여 계산의 시간 간격을 쉽게 이동할 수 있습니다.
- 2년 전으로 돌아가기
- 한 달 전으로 돌아가기
- 3/4 앞으로 이동
- 14일 전 돌아가기
- 28일 앞으로 이동
각각의 경우에 이동할 간격과 해당 간격 수만 지정하면 됩니다. 양수 간격은 시간을 앞으로 이동하고 음수 간격은 시간을 뒤로 이동합니다. 간격 자체는 DAY, MONTH, QUARTER 또는 YEAR의 키워드(keyword)로 지정됩니다. 이러한 키워드는 문자열이 아니므로 따옴표를 묶으면 안 됩니다.
일정 기간 동안 식을 계산하는 함수
이 함수 범주는 지정된 기간 동안 식을 계산합니다. CALCULATE 및 기타 시간 인텔리전스 함수를 사용하여 동일한 작업을 수행할 수 있습니다. 예를 들어,
= TOTALMTD (Expression, Date_Column [, SetFilter])
다음과 정확히 동일합니다.
= CALCULATE (Expression, DATESMTD (Date_Column)[, SetFilter])
그러나 이러한 시간 인텔리전스 함수는 해결해야 하는 문제에 적합할 때 사용하는 것이 더 쉽습니다.
- TOTALMTD (Expression, Date_Column [, SetFilter])
- TOTALQTD (Expression, Date_Column [, SetFilter])
- TOTALYTD (Expression, Date_Column [, SetFilter] [,YE_Date]) *
또한 이 범주에는 개시 잔액과 결산 잔액을 계산하는 함수 그룹이 있습니다. 이러한 함수에 대해 이해해야 할 몇 가지 개념이 있습니다. 첫째, 당연하게 생각할 수 있듯이 모든 기간의 개시 잔액은 이전 기간의 마감 잔액과 동일합니다. 마감 잔액에는 기간 종료까지의 모든 데이터가 포함되지만 개시 잔액에는 현재 기간 내의 데이터는 포함되지 않습니다.
이러한 함수는 항상 특정 시점에 대해 계산된 식의 값을 반환합니다. 우리가 관심을 갖는 시점은 항상 달력 기간에서 가능한 마지막 날짜 값입니다. 개시 잔액은 이전 기간의 마지막 날짜를 기준으로 하고 결산 잔액은 현재 기간의 마지막 날짜를 기준으로 합니다. 현재 기간은 항상 현재 날짜 컨텍스트의 마지막 날짜를 기준으로 결정됩니다.
- OPENINGBALANCEMONTH (Expression, Date_Column [,SetFilter])
- OPENINGBALANCEQUARTER Quarter (Expression, Date_Column [,SetFilter])
- OPENINGBALANCEYEAR (expression, Date_Column [,SetFilter] [,YE_Date])
- CLOSINGBALANCEMONTH (expression, Date_Column [,SetFilter])
- CLOSINGBALANCEQUARTER (Expression, Date_Column [,SetFilter])
- CLOSINGBALANCEYEAR (expression, Date_Column [,SetFilter] [,YE_Date])
추가 리소스
문서: Excel의 Power Pivot에서 날짜 테이블 이해 및 만들기
참조: Office.com 의 DAX 함수 참조