Tableau 날짜 계산에 대한 태그

30087 단어 tableaubitech

날짜 계산 태그


개시하다


이 기고문은 켄 플라지의 멋진 기고날짜 계산 태그를 바탕으로 한다.
타블라우의 워크북도 알기 쉬운 일본어 버전을 만들었다.
일본어 버전의 워크북은 여기.에서 다운로드할 수 있다.복제에 필요한 계산만 하면 46개의 재사용 가능한 날짜를 사용할 수 있다.
Tableau에 정통한 날짜와 시간에 관한 기본 함수를 전제로 하다
나는 여기서 그런 것들을 상세하게 설명하지 않는다.
모르는 함수는 날짜 함수의 공식 도움말에서 확인하십시오.
tableau 도움말:날짜 함수

개요


다음은 46일의 계산 필드를 소개한다.
42개의 컴퓨팅 필드에는 주, 월, 분기, 연간 및
앞, 현재, 다음 타임라인은 다음 결과를 반환합니다.
  • 기간별 첫날과 마지막 날
  • 기간별 일수
  • 기간별 영업일 수
  • 나머지 네 개의 계산 필드는 다음과 같습니다.
  • Decade(10년)
  • Century(100년)
  • 월의 마지막 지정된 일요일 - 예를 들어 그 달의 마지막 일요일.
  • 월의 N번째 지정 일요일 - 예를 들어 그 달의 셋째 수요일.
  • 처음 42개가 공통된 주제였기 때문에 달의 계산만 설명한다.
    일주일, 일사분기, 일년의 계산에 관해서는 작업장을 참조하세요.
    참고: 계산에 날짜 필드가 사용되지만 이 필드에서는
    데이터의 임의의 날짜와 파라미터를 지정할 수 있습니다.

    첫날 혹은 마지막 날


    DATETRUNC는 날짜/시간 유형을 반환하므로 날짜 유형으로 변환합니다.
    "現在の月の最初の日"
    // 1) 月の最初の日に切り捨てる
    // 2) 日付型に変換
    DATE(
        DATETRUNC('month', [日付])
    )
    
    "現在の月の最初の日"
    // 1) 月の最初の日に切り捨てる
    // 2) 1ヶ月分を足す
    // 3) 1日分を引く
    // 4) 日付型に変換
    DATE(
        DATEADD('day', -1, 
            DATEADD('month', 1, 
                DATETRUNC('month', [日付])
            )
        )
    )
    
    "次の月の最初の日"
    // 1) 月の最初の日に切り捨てる
    // 2) 1ヶ月分を足す
    // 3) 日付型に変換
    DATE(
        DATEADD('month', 1, 
            DATETRUNC('month', [日付])
        )
    )
    
    "次の月の最後の日"
    // 1) 月の最初の日に切り捨てる
    // 2) 2ヶ月分を足す
    // 3) 1日分を引く
    // 4) 日付型に変換
    DATE(
        DATEADD('day', -1, 
            DATEADD('month', 2, 
                DATETRUNC('month', [日付])
            )
        )
    )
    
    "前の月の最初の日"
    // 1) 月の最初の日に切り捨てる
    // 2) 1ヶ月分を引く
    // 3) 日付型に変換
    DATE(
        DATEADD('month', -1, 
            DATETRUNC('month', [日付])
        )
    )
    
    "前の月の最後の日"
    // 1) 月の最初の日に切り捨てる
    // 2) 1日分を引く
    // 3) 日付型に変換
    DATE(
        DATEADD('day', -1, 
            DATETRUNC('month', [日付])
        )
    )
    

    일수


    윤년에도 작동할 수 있는 계산을 세우다.
    기본적으로 위에서 만든 계산 공식을 사용하여 한 달의 마지막 날을 찾을 수 있고 날짜 부분을 정수로 할 수 있습니다.
    생성된 계산만 참고하면 되지만 필요한 계산만 복제하기 위해
    이 계산들은 서로 독립되어 있다.
    "現在の月の日数"
    // 現在の月の最後の日を取得した後、日付の日の部分を整数として取得します
    // DAY()内の計算式は、[現在の月の最後の日]と同じです
    DAY(
        DATEADD('day', -1, 
            DATEADD('month', 1, 
                DATETRUNC('month', [日付])
            )
        )
    )
    
    "次の月の日数"
    // 次の月の最後の日を取得した後、日付の日の部分を整数として取得します
    // DAY()内の計算式は、[次の月の最後の日]と同じです
    DAY(
        DATEADD('day', -1, 
            DATEADD('month', 2, 
                DATETRUNC('month', [日付])
            )
        )
    )
    
    분기와 연간 계산 필드는 월 계산 필드와 약간 다르다.
    분기의 첫날부터 마지막 날까지의 일수를 계산하고 하루를 가산한다.
    1년의 마지막 날을 얻은 날짜 부분.
    일주일의 일수는 항상 7일이기 때문에 일주일의 일수 계산 필드가 없다.

    근무일수


    한동안 근무일 수는 주말을 버려야 하기 때문에 일수보다 계산하기가 어렵다.
    다행히도 Tableau는 아주 좋은 해설적인 문장을 가지고 있다.
    한의: 여러 날짜 사이의 요일을 계산하다
    영어: Calculating Number of Weekdays Between Dates
    여기에 이 기교를 활용하였다.
    독립형 컴퓨팅 필드에 논리적으로 입력할 수 있는 필드가 너무 많기 때문에 현재 월의 근무일수에서
    현재 월의 첫 번째 근무일과 현재 월의 마지막 근무일 두 조수의 계산이 있다
    이것은 1절에서 생성된 현재 달의 첫날과 마지막 날을 참조하여 계산한 것이다.
    따라서 이 계산을 사용할 때도 이 계산에 의존하는 계산을 복제해야 한다.
    "前の月の日数"
    // 前の月の最後の日を取得した後、日付の日の部分を整数として取得します
    // DAY()内の計算式は、[前の月の最後の日]と同じです
    DAY(
        DATEADD('day', -1, 
            DATETRUNC('month', [日付])
        )
    )
    
    "現在の月の最初の平日"
    // 次の平日に日付をずらす
    IF DATEPART('weekday', [現在の月の最初の日]) = 1 THEN 
        // 日曜なので、1日分を足して月曜に
        DATEADD('day', 1, [現在の月の最初の日])
    ELSEIF DATEPART('weekday', [現在の月の最初の日]) = 7 THEN 
        // 土曜なので、2日分を足して月曜に
        DATEADD('day', 2, [現在の月の最初の日])
    ELSE 
        // すでに平日のもの
        [現在の月の最初の日]
    END
    
    "現在の月の最後の平日"
    // 前の平日に日付をずらす
    IF DATEPART('weekday', [現在の月の最後の日]) = 1 THEN 
        // 日曜なので、2日分を引いて金曜に
        DATEADD('day', -2, [現在の月の最後の日])
    ELSEIF DATEPART('weekday', [現在の月の最後の日]) = 7 THEN 
        // 土曜なので、1日分を引いて金曜に
        DATEADD('day', -1, [現在の月の最後の日])
    ELSE 
        // すでに平日のもの
        [現在の月の最後の日]
    END
    

    월 지정 일요일


    월 마지막 일요일
    예컨대 그 달의 마지막 일요일을 얻고 싶다.
    이게 좀 복잡해요. 가능한 한 알기 쉽게.
    현재 월의 마지막 작업일 색인 번호를 얻기 위해 조수 계산을 만듭니다.
    또한 이전에 생성한 계산을 사용했다.
    "現在の月の平日の数"
    // 2つの日付の間にある平日の数を計算する計算式です
    // 期間の最初と最後の平日を計算する計算フィールドを使用します。
    // https://kb.tableau.com/articles/howto/calculating-the-number-of-business-days-in-a-month?lang=ja-jp
    DATEDIFF('day', [現在の月の最初の平日], [現在の月の最後の平日]) + 1
    - 2 * DATEDIFF('week', [現在の月の最初の平日], [現在の月の最後の平日])
    
    매주 7개의 계산 필드를 준비하는 것이 아니라 "요일"매개 변수를 만듭니다.
    거기에는 요일의 숫자(일요일=1,월요일=2등)가 놓여 있다.이 매개변수 사용
    필요한 요일을 지정하거나 이 인자를 삭제하여 하드코딩을 할 수 있습니다.
    계산된 필드는 월의 마지막 날부터 지정된 요일로 거슬러 올라갈 수 있다.
    "現在の月の最後の平日のインデックス番号 - Helper Calc 1-1"
    DATEPART('weekday', [現在の月の最後の日])
    
    ·월의 N차 지정 일요일
    예컨대 그 달의 셋째 수요일을 얻고 싶다.
    이 계산 필드의 논리는 상술한 내용과 비슷하다
    고려해야 할 것은 몇 주(1주, 2주, 3주, 4주, 5주)다.
    "요일"을 사용하는 것과 마찬가지로 취득 날짜를 지정하기 위해 몇 주가 되는 것
    다른 매개변수 "N주차"가 생성되었습니다.또 이곳에서도'요일'을 사용한다.
    이 계산 필드의 논리가 좀 복잡해서 두 개의 조수 계산을 만들고 있습니다.
    "月の最後の指定した曜日の日"
    // 現在の月の最後の平日から始めます
    // 指定した曜日になるように日数を引いていきます
    [現在の月の最後の日]
    -
    IF [現在の月の最後の平日のインデックス番号 - Helper Calc 1] = [曜日] THEN
        // 最初の日は正しい平日なので、日数を追加する必要はありません
        0
    ELSEIF [曜日] > [現在の月の最後の平日のインデックス番号 - Helper Calc 1] THEN
        // 必要な日は最初の日の後です
        7-[曜日]+[現在の月の最後の平日のインデックス番号 - Helper Calc 1]
    ELSE
        // 必要な日は最初の日の前です
        [現在の月の最後の平日のインデックス番号 - Helper Calc 1]-[曜日]
    END
    
    그런 다음 월의 마지막 일요일 지정 계산 필드와 같은 논리로 계산 필드를 만듭니다.
    그러나 두 가지 주요 차이가 있다.첫 번째는 항상 달의 첫날부터 세는 것이다.
    둘째, 계산할 때 몇 주를 고려해야 한다.필요에 따라 7일의 배수를 가산하다.
    "現在の月の最初の平日のインデックス番号 - Helper Calc 2-1"
    DATEPART('weekday', [現在の月の最初の日])
    
    월에 따라 5주째, 4주째까지만 있는 요일이 있다.
    따라서 5주차를 선택했는데도 그 날이 존재하지 않는 상황에 대비할 필요가 있다.
    이 문제를 해결하기 위해서 마지막 계산 필드에서 현재 달의 첫날과 동일한지 확인하십시오.
    그렇지 않으면 유효하지 않은 날짜가 되고 NULL이 반환됩니다.
    "N回目の指定した曜日の日 - Helper Calc 2-2"
    // 現在の月の最初の平日から始めます
    // 指定した曜日になるように日数を足していきます
    // その後、7日間の倍数を追加して、指定された週/第N週目になるようにします
    [現在の月の最初の日]
    +
    IF [現在の月の最初の平日のインデックス番号 - Helper Calc 2-1] = [曜日] THEN
        // 最初の日は正しい平日なので、日数を追加する必要はありません
        0
    ELSEIF [曜日] > [現在の月の最初の平日のインデックス番号 - Helper Calc 2-1] THEN
        // 必要な日は最初の日の後です
        [曜日]-[現在の月の最初の平日のインデックス番号 - Helper Calc 2-1]
    ELSE
        // 必要な日は最初の日の前です
        7-[現在の月の最初の平日のインデックス番号 - Helper Calc 2-1]+[曜日]
    END
    +
    7*([N週目]-1)
    
    마지막으로 이 계산에 보충이 있다.
    이것들은 모두 그 달만을 겨냥한 것이다.
    지난달이나 다음 달을 조사해야 할 경우 참조된 계산 필드를'전'으로 바꾸기만 하면 된다.

    기타


    마지막으로 Decade 및 Century 에 대해 설명합니다.
    decade는 10년에 한 번씩 버리는 단위다.
    예:2021/11/01->2021
    Century는 100년에 한 번씩 버리는 단위다.일본어로 세기라고 합니다.
    예:2021/11/01->2000
    죄송합니다. 이러한 옵션은 DATETRUNC 옵션이 없으므로 스스로 차단해야 합니다.
    10년 단위로, 사실상 연도의 마지막 숫자를 삭제하고 0으로 바꿨을 뿐이다.
    이를 위해 연도를 10으로 나누어 정수 부분에 10을 더 넣는다.
    예를 들어'2015'의 한 해를 생각해 보자.
    10으로 나누면 201.5다.그런 다음 반올림이 정수이면 201입니다.
    마지막으로 10부터 2010까지 칩니다.
    Century는 100을 제외하고는 동일합니다.
    또 필요에 따라 1000을 사용해도 같은 일을 할 수 있다.
    "月のN回目の指定した曜日の日"
    // 仮に5週目を選んだ場合、指定した曜日の日は翌月になる可能性があります。
    // その場合は、値をnullにします。
    IF DATETRUNC('month', [N回目の指定した曜日の日 - Helper Calc 2-2]) <> DATETRUNC('month', [現在の月の最初の日]) THEN
        NULL
    ELSE
        [N回目の指定した曜日の日 - Helper Calc 2-2]
    END
    
    // decade(10年)の単位に切り捨てる
    INT(YEAR([日付])/10)*10
    

    워크북


    여기.에서 워크북을 다운로드할 수 있습니다.

    워크시트에는 사용 가능한 모든 계산 필드의 목록이 포함되어 있습니다.
    필터를 선택하면 계산 필드의 이름과 폴더가 테이블에 표시됩니다.
    워크북을 다운로드하고 계산 필드를 복사합니다. (의존 관계)
    자신의 작업장에 붙일 수 있다.
    모든 계산 필드가 적당한 주석을 달았다
    필드의 실행 내용과 원인을 쉽게 이해할 수 있습니다.
    Thanks:
    Header image by rawpixel.com (Freepik.com)

    좋은 웹페이지 즐겨찾기