기술 자료

두 날짜 사이의 평일 수 계산


게시 날짜: 17 Feb 2017
마지막 수정 날짜: 05 Jun 2023

질문

두 날짜 사이의 평일 또는 영업일 수를 계산하는 방법. 예를 들어 데이터 원본의 두 날짜 필드 또는 두 매개 변수 날짜 사이의 영업일 수나 월의 평일 수를 계산합니다.

환경

Tableau Desktop

답변

    
         
해결 방법을 확장하려면 클릭         

옵션 1: 데이터 원본에서 두 날짜 필드 사이의 평일 수 계산

1단계: 계산된 필드 만들기
  1. 분석 > 계산된 필드 만들기를 선택합니다.
  2. 계산된 필드 대화 상자에서 다음을 수행한 후 확인을 클릭합니다.
    1. 계산된 필드에 이름을 지정합니다. 이 예에서 계산된 필드의 이름은 "Order Date (shifted to weekday)(주문 날짜(평일로 이동됨))"입니다.
    2. 수식 필드에서 다음과 유사한 계산을 만듭니다.
       
      IF DATEPART('weekday', [Order Date]) = 1
      THEN DATEADD('day', 1, [Order Date])
      ELSEIF DATEPART('weekday', [Order Date]) = 7
      THEN DATEADD('day', 2, [Order Date])
      ELSE [Order Date]
      END
  3.  다음과 유사한 계산을 사용하여 "Ship Date (shifted to weekday)(주문 날짜(평일로 이동됨))"이라는 이름의 계산된 필드를 만듭니다.
     
    IF DATEPART('weekday', [Ship Date]) = 1
    THEN DATEADD('day', -2, [Ship Date])
    ELSEIF DATEPART('weekday', [Ship Date]) = 7
    THEN DATEADD('day', -1, [Ship Date])
    ELSE [Ship Date]
    END
  4.  다음과 유사한 계산을 사용하여 "# of Weekdays from Order to Shipping(주문에서 배송까지의 평일 수)"라는 이름의 계산된 필드를 만듭니다.
     
    MIN(
    DATEDIFF('day', [Order Date (shifted to weekday)], [Ship Date (shifted to weekday)])
    + 1
    - 2 * DATEDIFF('week', [Order Date (shifted to weekday)], [Ship Date (shifted to weekday)])
    )
2단계: 뷰 작성
  1. [Order ID(주문 ID)]를 행 선반으로 끌어옵니다.
  2. 선택 사항: [Order Date(주문 날짜)] 및 [Ship Date(배송 날짜)]를 행 선반으로 끌어옵니다.
  3. [# of Weekdays from Order to Shipping(주문에서 배송까지의 평일 수)]을 마크 카드의 텍스트로 끌어옵니다.
 
해결 방법을 확장하려면 클릭        

옵션 2: 한 날짜 필드에서 각 월의 평일 수 계산         

이 예에서는 샘플 데이터 집합 Superstore를 사용하여 주문 날짜의 각 월에 포함된 평일 수를 구합니다.
  1. 분석 > 계산된 필드 만들기를 선택합니다.
  2. 계산된 필드 대화 상자에서 다음을 수행한 후 확인을 클릭합니다.
    1. 계산된 필드에 이름을 지정합니다. 이 예에서 계산된 필드의 이름은 "Start of Month Date(월 시작 날짜)"입니다.
    2. 수식 필드에서 다음과 유사한 계산을 만듭니다.

      DATETRUNC('month', [Order Date])
  3. 다음과 유사한 계산을 사용하여 "End of Month Date(월 끝 날짜)"라는 이름의 계산된 필드를 만듭니다.

    DATEADD('day', -1, DATEADD('month', 1, DATETRUNC('month', [Order Date])))
  4. 옵션 1의 지침을 따르되, [Order Date(주문 날짜)] 대신 [Start of Month Date(월 시작 날짜)]를 사용하고 Ship Date(배송 날짜) 대신 [End of Month Date(월 끝 날짜)]를 사용합니다. 
         
해결 방법을 확장하려면 클릭        

옵션 3: 휴일을 제외한 평일 수 계산

이 예에서는 샘플 데이터 집합 Superstore를 사용하여 각 주문의 주문 날짜와 배송 날짜 사이의 평일 수를 구합니다.

1단계: 데이터 설정
  1. 테이블을 휴일 날짜 목록이 포함된 원래 데이터 원본에 추가합니다. 이 예에서 테이블의 이름은 "Holidays(휴일)"입니다.
  2. Tableau Desktop에서 데이터 원본 탭으로 이동합니다.
  3. 캔버스 영역에 "Holidays(휴일)" 테이블을 추가합니다.
  4. 조인 대화 상자에서 다음을 수행합니다.
    1. Left를 선택합니다.
    2. 데이터 원본에서 Order Date(주문 날짜)를 선택합니다.
    3. Holidays(휴일)에서 Holiday Date(휴일 날짜)를 선택합니다.
    4. 등호를 클릭하고 <=를 선택합니다.
    5. 데이터 원본에서 새 조인 절 추가를 클릭하고 Ship Date(배송 날짜)를 선택합니다.
    6. Holidays(휴일)에서 Holiday Date(휴일 날짜)를 선택합니다.
    7. 등호를 클릭하고 >=를 선택합니다.
 
참고: [Order Date(주문 날짜)]와 [Ship Date(배송 날짜)]가 각각 실제 시작 날짜와 끝 날짜로 대체되어야 합니다. 시작 날짜와 끝 날짜가 계산된 필드인 경우 조인 계산에서 이러한 계산이 다시 만들어질 수 있습니다. 휴일 날짜가 있는 원래 데이터 원본에 테이블을 추가할 수 없는 경우 휴일 날짜가 포함된 외부 테이블에 대한 교차 데이터베이스 조인을 만듭니다. 이렇게 하려면 교차 데이터베이스 조인 기능의 조인 절에서 부등식을 사용할 수 있도록 Tableau Desktop 10.5 이상으로 업그레이드해야 합니다.
 
2단계: 계산 만들기
  1. 워크시트로 이동합니다.
  2. 옵션 1의 지침에서 1-1단계부터 1-3단계까지 수행하여 [Order Date (shifted to weekday)(주문 날짜(평일로 이동됨)] 및 [Ship Date (shifted to weekday)(배송 날짜(평일로 이동됨)] 계산을 만듭니다.
  3.  다음과 유사한 계산을 사용하여 "# of Weekdays from Order to Shipping(주문에서 배송까지의 평일 수)"라는 이름의 계산된 필드를 만듭니다.
     
    MIN(
    DATEDIFF('day', [Order Date (shifted to weekday)], [Ship Date (shifted to weekday)])
    + 1
    - 2 * DATEDIFF('week', [Order Date (shifted to weekday)], [Ship Date (shifted to weekday)])
    ) - COUNTD([Holiday Date])

3단계: 뷰 만들기
  1. [Order ID(주문 ID)]를 행 선반으로 끌어옵니다.
  2. 선택 사항: [Order Date(주문 날짜)] 및 [Ship Date(배송 날짜)]를 행 선반으로 끌어옵니다.
  3. [# of Weekdays from Order to Shipping (excluding holidays)(주문에서 배송까지의 평일 수(휴일 제외))]을 마크 카드의 텍스트로 끌어옵니다.
이 문서로 문제가 해결되었습니까?