날짜 테이블 만들기

완료됨

Power BI에서 보고서를 생성할 때 일반적인 비즈니스 요구 사항 중 하나는 날짜와 시간을 기준으로 계산을 하는 것입니다. 기업들은 몇 달, 몇 분기, 몇 회계 연도 등 각 기간별로 자사 사업이 어떻게 진행되고 있는지 알고 싶어합니다. 이러한 이유로 이러한 시간 지향적인 값을 올바르게 형식화하는 것이 중요합니다. Power BI 날짜 열과 표를 자동으로 감지합니다. 그러나 조직에서 요구하는 형식으로 날짜를 가져오기 위해 추가 단계를 거쳐야 하는 상황이 발생할 수 있습니다.

예를 들어, 귀하의 조직의 영업팀을 위해 보고서를 개발하고 있다고 가정해 보겠습니다. 데이터베이스에는 판매, 주문, 제품 등에 대한 테이블이 포함되어 있습니다. 판매 및 주문을 포함한 이러한 테이블 중 다수에 자체 날짜 열이 포함되어 있는 것을 알 수 있습니다. 판매 및 주문 테이블의 ShipDateOrderDate 열에서 확인할 수 있습니다. 여러분은 연도별, 월별 총 매출 및 주문량을 기록한 표를 작성하는 업무를 맡았습니다. 각각 고유한 날짜 열을 참조하는 여러 테이블로 구성된 시각적 개체를 어떻게 만들 수 있을까요?

이 문제를 해결하려면 여러 테이블에서 사용할 수 있는 공통 날짜 테이블을 만들면 됩니다. 다음 섹션에서는 작업를 어떻게 달성할 수 있는지 설명합니다 Power BI.

공통 날짜 테이블 만들기

공통 날짜 표를 작성하는 방법은 다음과 같습니다.

  • 소스 데이터

  • DAX

  • Power Query

소스 데이터

때로는 소스 데이터베이스와 데이터웨어하우스에 자체 날짜 테이블이 이미 있는 경우도 있습니다. 데이터베이스를 설계한 관리자가 철저한 작업을 수행했다면 이러한 테이블을 사용하여 다음 작업을 수행할 수 있습니다.

  • 회사 휴일을 확인하세요

  • 별도의 달력 및 회계 연도

  • 주말과 주중을 구분하세요

소스 데이터 표는 완성되어 즉시 사용할 수 있습니다. 그런 표가 있다면 그것을 의미 모델에 적용하고, 이 섹션에 설명된 다른 방법은 사용하지 마세요. 다른 도구와 공유될 가능성이 있으므로 소스 날짜 표를 사용하는 것이 좋습니다 Power BI.

원본 데이터 테이블이 없으면 다른 방법을 사용하여 공통 날짜 테이블을 작성할 수 있습니다.

DAX

DAX(Data Analysis Expression) 함수인 CALENDARAUTO() 또는 CALENDAR()를 사용하여 공통 날짜 표를 만들 수 있습니다. CALENDAR() 함수는 함수에 인수로 입력된 시작 날짜와 종료 날짜를 기준으로 연속된 날짜 범위를 반환합니다. 또는 CALENDARAUTO() 함수는 의미 모델에서 자동으로 결정된 연속적이고 완전한 날짜 범위를 반환합니다. 시작 날짜는 의미 모델에 존재하는 가장 빠른 날짜로 선택되고, 종료 날짜는 의미 모델에 존재하는 가장 늦은 날짜와 CALENDARAUTO() 함수에서 인수로 포함할 수 있는 회계 월에 채워진 데이터가 더해진 날짜입니다. 이 예제의 목적상 CALENDAR() 함수를 사용하는 이유는 2011년 5월 31일(Sales에서 이 데이터를 추적하기 시작한 첫날)부터의 데이터와 그 이후 10년 동안의 데이터만 보고 싶기 때문입니다.

Power BI Desktop에서 새 테이블을 선택한 후 다음 DAX 수식을 입력합니다.

Dates  = CALENDAR(DATE(2011, 5, 31), DATE(2022, 12, 31))

이제 사용할 수 있는 날짜 열이 생겼습니다. 하지만 이 칼럼은 다소 빈약합니다. 또한 년도, 월, 주, 요일에 대한 열도 보고 싶을 것입니다. 리본에서 새 열 을 선택하고 다음 DAX 방정식을 입력하면 Date 테이블에서 연도를 검색하여 작업를 완료할 수 있습니다.

Year = YEAR(Dates[Date])

동일한 프로세스를 수행하여 월 번호, 주 번호 및 요일을 검색할 수 있습니다.

MonthNum = MONTH(Dates[Date])
WeekNum = WEEKNUM(Dates[Date])
DayoftheWeek = FORMAT(Dates[Date], "DDDD")

작업이 완료되면 다음 그림에 표시된 열이 표에 포함됩니다.

이제 DAX를 사용하여 공통 날짜 테이블을 만들었습니다. 이 프로세스는 새 테이블을 의미 모델에 추가할 뿐입니다. 날짜 테이블과 판매 및 주문 테이블 간의 관계를 설정한 다음 테이블을 의미 모델의 공식 날짜 테이블로 표시해야 합니다. 하지만 이러한 작업을 완료하기 전에 일반적인 날짜 표를 작성하는 또 다른 방법인 Power Query를 사용하는 것을 고려해 보세요.

Power Query

Power Query에서 쿼리를 작성하는 데 사용되는 개발 언어인 M 언어를 사용하여 공통 날짜 표를 정의할 수 있습니다.

데이터 변환 을 Power BI Desktop선택하면 Power Query으로 이동합니다. 왼쪽 쿼리 창의 빈 공간을 마우스 오른쪽 버튼으로 클릭하여 다음과 같은 드롭다운 메뉴를 엽니다. 여기서 새 쿼리 > 빈 쿼리를 선택합니다.

결과 새 쿼리 보기에서 다음 M-수식을 입력하여 달력 표를 작성합니다.

= List.Dates(#date(2011,05,31), 365*10, #duration(1,0,0,0))

판매 데이터의 경우 시작 날짜는 데이터에 있는 가장 빠른 날짜, 즉 2011년 5월 31일을 반영해야 합니다. 또한, 미래의 날짜를 포함하여 향후 10년 동안의 날짜도 보고 싶을 것입니다. 이런 접근 방식을 사용하면 새로운 판매 데이터가 유입되어도 이 표를 다시 만들 필요가 없습니다. 또한 기간을 변경할 수도 있습니다. 이 경우, 매일의 가리키다 데이터가 필요하지만, 시간, 분, 초로 증가시킬 수도 있습니다. 다음 그림은 결과를 보여줍니다.

과정 속에서 성공을 거두고 나면 날짜 표가 아닌 날짜 목록이 생겼다는 걸 깨닫게 됩니다. 이 오류를 수정하려면 다음으로 이동하세요. 변환 리본의 탭을 선택하고 전환하다 > 테이블로. 이름에서 알 수 있듯이 이 기능은 목록을 표로 변환합니다. 또한 열의 이름을 다음과 같이 바꿀 수 있습니다. 날짜열.

다음으로, 날짜를 년도, 월, 주, 일별로 볼 수 있는 열을 새 표에 추가하여 시각적으로 계층 구조를 구축할 수 있습니다. 첫 번째 작업는 열 이름 옆에 있는 아이콘을 선택하고, 나타나는 드롭다운 메뉴에서 날짜 유형을 선택하여 열 유형를 변경하는 것입니다.

날짜 유형 선택을 마치면 년, 월, 주, 일에 대한 열을 추가할 수 있습니다. 열 추가로 이동하여 날짜 아래의 드롭다운 메뉴를 선택한 다음, 다음 그림과 같이 연도를 선택합니다.

Power BI DateCol 에서 가져온 모든 연도의 열이 추가된 것을 주목하세요.

같은 과정을 몇 달, 몇 주, 며칠 동안 반복합니다. 이 과정을 마치면 표에 다음 그림에 표시된 열이 포함됩니다.

이제 Power Query 공통 날짜 표를 성공적으로 만들었습니다.

이전 단계에서는 표를 의미 모델로 가져오는 방법을 보여줍니다. 이제 모든 향후 값에서 해당 표를 인식할 수 있고 형식이 올바른지 확인할 수 있도록 표를 공식 날짜 표로 표시해야 합니다. Power BI

공식 날짜표로 표시

테이블을 공식 날짜 테이블로 표시하는 첫 번째 작업 작업은 필드 창에서 새 테이블을 찾는 것입니다. 다음 그림과 같이 테이블 이름을 마우스 오른쪽 버튼으로 클릭한 다음 날짜 테이블로 표시를 선택합니다.

테이블을 날짜 테이블로 표시하면 Power BI 데이터에 null 값이 없고, 고유하며, 특정 기간 동안 연속적인 날짜 값이 포함되어 있는지 확인하기 위한 검증이 수행됩니다. 표에서 특정 열을 선택하여 날짜로 표시할 수도 있습니다. 이는 표에 여러 열이 있는 경우 유용합니다. 표를 마우스 오른쪽 버튼으로 클릭하고 날짜 표로 표시를 선택한 다음 날짜 표 설정 을 선택합니다. 다음 창이 나타나면 날짜로 표시할 열을 선택할 수 있습니다.

날짜 테이블로 표시 를 선택하면 날짜 테이블로 표시한 테이블의 날짜 필드에서 자동 생성된 계층 구조가 제거됩니다. 다른 날짜 필드의 경우, 해당 필드와 날짜 테이블 사이에 관계를 설정하거나 자동 날짜/시간 기능을 해제할 때까지 자동 계층 구조는 계속 유지됩니다. 필드 창에서 년, 월, 주 또는 일 열을 마우스 오른쪽 버튼으로 클릭한 다음 새 계층 을 선택하여 일반 날짜 테이블에 수동으로 계층을 추가할 수 있습니다. 이 프로세스에 대해서는 이 모듈의 뒷부분에서 자세히 설명합니다.

시각적 요소를 구축하세요

판매 및 주문 테이블 사이에 시각적 개체를 구축하려면 이 새로운 공통 날짜 테이블과 판매 및 주문 테이블 사이에 관계를 설정해야 합니다. 그 결과, 새로운 날짜 표를 사용하여 시각적인 자료를 작성할 수 있습니다. 이 작업를 완료하려면 모델>관계 관리로 이동하세요. 여기서 OrderDate 열을 사용하여 일반 날짜 테이블과 주문 및 판매 테이블 간의 관계를 만들 수 있습니다. 다음 스크린샷은 그러한 관계 중 하나의 예를 보여줍니다.

관계를 구축한 후에는 DAX나 메서드를 사용하여 개발한 공통 날짜 표를 사용하여 시간별 총 매출 및 주문 수량 Power Query 시각적 자료를 구축할 수 있습니다.

총 매출을 결정하려면 모든 매출을 더해야 합니다. 매출 표의 금액 열은 총 매출 수익이 아닌 각 매출에 대한 수익만 보기 때문입니다. 다음 측정 계산을 사용하여 작업를 완료할 수 있습니다. 이에 대해서는 이후 논의에서 설명하겠습니다. 이 측정값을 구축할 때 사용하는 계산은 다음과 같습니다.

#Total Sales = SUM(Sales[‘Amount’])

작업이 끝나면 시각화 탭으로 돌아가서 시각적 요소를 선택하여 표를 만들 수 있습니다. 연도별, 월별 총 주문 및 매출을 보고 싶으시다면 날짜 테이블의 연도 및 월 열, OrderQty 열, #TotalSales 측정값만 포함하면 됩니다. 계층 구조에 대해 배우면 몇 년에서 몇 달까지 드릴다운하다 수 있는 계층 구조를 구축할 수도 있습니다. 이 예에서는 두 가지를 나란히 볼 수 있습니다. 이제 공통 날짜 표가 포함된 시각적 개체를 성공적으로 만들었습니다.