6 Replies Latest reply on Oct 23, 2019 4:55 PM by Yoshiaki Otake

    稼働日のみの日付加算について

    Yoshiaki Otake

      お世話になります。どなたかご教示いただければと思います。

      稼働日のみの日付の加算、減算について稼働日カレンダーマスタの休暇フラグを読み込まずに

      dateaddか他関数を使用して、日付加算をしたいのですがご教示頂けないでしょうか?

      データとしましては2種類あります。

      ・稼働日カレンダー

      ・結合先データ

      稼働日カレンダーに対して結合先データを外部結合し、以下のイメージ通りにアウトプット出来ればと思います!

      最終イメージ.png

       

      よろしくお願いいたします!!

        • 1. Re: 稼働日のみの日付加算について
          Kazuya Niikura

          Yoshiaki Otake様

           

          一番簡単な方法は、フィルターで営業日のみを表示した上で表計算を使う方法です。

          表計算で3つ下の営業日を取得する計算式を作成すれば、祝日や夏季休暇等のイレギュラーが間にあっても営業日を取得できます。

          3営業日先の表示方法.JPG

           

          実装例.JPG

           

          ただ、この方法だと下記の2点の注意が必要です。

          1.取得できない営業日が存在

          2.フィルターで取得した営業日がずれることがある

           

          1.

          表で見た際に3つ下の営業日を取得してくるだけなので、3営業日先の日付が表に掲載されていないと取得できません。

          表計算で計算した時の非表示範囲.JPG

           

          2.

          スライダーで開始日と終了日を範囲指定するなら大丈夫ですが、

          ドロップダウンで間の日付を取り除くと、営業日がずれます。

          これは、営業日の取得方法を単純な掲載位置に頼っているためです。

          値を間違って取得するケース.JPG

           

          失礼いたしました。2018.3で作成し直しました。

          • 2. Re: 稼働日のみの日付加算について
            Yoshiaki Otake

            kazuya Niikura様

             

            様々な方法をご提案頂き有難うございます。色々方法があるんですね、勉強になります。

            質問時に記載しておらず、申し訳ありませんが

            私がやりたかったこととして、計算フィールドで+3日後の日付取得のディメンションを作成し管理番号ごとでの表示をしたいです。

            そういったことは可能でしょうか?

            また、twbxですが私の使用しているバージョンが古く、申し訳ありませんが2018.3のバージョンで添付して頂けないでしょうか?

            • 3. Re: 稼働日のみの日付加算について
              Shigeki Konishi

              Yoshiaki Otakeさん

               

              過去にこの様な方法が回答されていますので、参考までに。

              土日祝日を抜いた稼働時間を計算するには

              タイトルは上記の通りですが、土日に出勤することを考慮した作りで回答されています。

              1 of 1 people found this helpful
              • 4. Re: 稼働日のみの日付加算について
                Kazuya Niikura

                SHIGEKI KONISHI様

                 

                参考リンクを提示してくださりありがとうございます。

                 

                Yoshiaki Otake

                 

                SHIGEKI KONISHI様が提示した参考リンクの通り、Tableau上で対応するのは難しそうです。

                土日だけなら曜日ごとに条件を変えて計算すれば出来なくないですが、祝日が不規則かつ変更したりするので計算式だけではとても対応できそうにありません。

                • 5. Re: 稼働日のみの日付加算について
                  shuhei saito

                  管理番号ごとに3営業日後を計算したいということですので、この場合は結合を変更して少し力業をすればLOD表現で取得可能です。

                   

                  まずは結合先データに対して稼働日カレンダーを内部結合します。

                  このとき、符号を不等号にしておきます。

                   

                  次に、Holidayに該当するデータを除外します。

                  データソースフィルターが適切ですが、ここでは外していることが分かるようにコンテキストフィルターにしています。

                   

                  これにより、ひとつの管理番号につき、「その発行日よりも後の日付である」かつ「Holidayではない」データだけが残ります。

                  データソースは次のようになっているイメージです。

                   

                  あとは計算フィールドで「3番目に小さいto_date」を特定します。

                  これが少々力業なのですが、LOD表現で最も小さい(1番目に小さい)to_dateを特定し、さらにその情報を使って2番目に小さいto_dateを特定し、さらにその情報を使って3番目に小さいto_dateを特定するという過程を踏みます。

                   

                  これで管理番号ごとの「発行日から3営業日後の日付」を表示することができます。

                  (ここで管理番号:S000012の3営業日後の日付がNULLになっているのは、単純に3営業日後を判定するためのカレンダーが存在しないためです。)

                  2 of 2 people found this helpful
                  • 6. Re: 稼働日のみの日付加算について
                    Yoshiaki Otake

                    KAZUYA NIIKURA様 SHIGEKI KONISHI様 SHUHEI SAITO様

                     

                    おはようございます。

                    ご回答頂き、有難うございます!

                    レスポンスのことも考慮し、ETLやSQLを駆使しながら営業日の算出を行おうとしておりましたが、

                    SHUHEI SAITO様からの回答で出来ましたので、こちらを正解とさせていただきます。

                     

                    皆様、ご回答頂き有難うございました!