祝日を除いた稼働日の計算方法

お世話になります。

祝日を除いたある期間の稼働日数を計算したいのですが対応可能でしょうか?

netWorkDays()だと土日を除いた日数は算出できるのですが、

祝日や会社が定める特定の休日を除いた日数の計算を行いたいと考えています。

ご教授いただけると助かります。

よろしくお願いします。

1 Like

@nori
ご質問ありがとうございます。
ご指摘の通り、netWorkDays()は祝日を扱えないので、別途、祝日、会社の休日のデータを用意して、計算するしかないと思います。
ご検討頂けると幸いです。

ご確認ありがとうございます。

別途データを準備すれば可能と受け取りましたが、具体的な手法などご教授いただけると助かます。

お手数をおかけしますが、よろしくお願いします。

@nori

手順を再現させて頂きましたので、以下にスクリーンショットと共に添付いたします。こちらをぜひお試しいただけますでしょうか。

①以下のような祝日テーブルを作成する
※ 扱う日付の範囲でのテーブルの作成が必要です。頻繁な更新は負担になるかと思いますので、数年先まで作成するのが良いかと思います。

date,is_holiday
2018-01-01,1
2018-01-08,1
2018-02-11,1
2018-02-12,1
2018-03-21,1
2018-04-29,1
2018-04-30,1
2018-05-03,1
2018-05-04,1
2018-05-05,1
2018-07-16,1
2018-08-11,1
2018-09-17,1
2018-09-23,1
2018-09-24,1
2018-10-08,1
2018-11-03,1
2018-11-23,1
2018-12-23,1
2018-12-24,1
2019-01-01,1
2019-01-14,1
2019-02-11,1
2019-03-21,1
2019-04-29,1
2019-04-30,1
2019-05-01,1
2019-05-02,1
2019-05-03,1
2019-05-04,1
2019-05-05,1
2019-05-06,1
2019-07-15,1
(以下略)

②データセット上で、Left Join で結合する

③以下のような計算フィールドを作成する

sum(
  ifelse(
    isWorkDay({date}) AND isNull({is_holiday}),
    1,
    0
  )
)

④以下のように集計可能です。
※ 期間については date に対してフィルター等を適用する想定で、計算フィールドには含めておりません。

mririka様

ご回答ありがとうございます。

私の説明が不足していたようですので申し訳ありません。

開始日と終了日の2つの日付を持っており、この間の稼働日数(要した日数)の計算を

行いたいと思っております。(下記に簡単なイメージ図を際いたします)

Quick Suiteの「netWorkDays()」関数では、土日を除いた日数のみになってしまいます。

イメージ的には、エクセルのnetWorkDays関数で祝日のデータを入力したときのように

開始日と終了日の間の日数を祝日を除いた状態で算出を行いたいです。

お手数をおかけしますが、ご教授いただければ幸いです。

@nori さん、詳しいユースケースのご説明ありがとうございます。

ご提示いただいたように開始日と終了日を持つテーブルに対して祝日を集計して除外する処理は、現状QuickSight内に完結して行うことはできません。事前にデータソース側でSQLを使い土日祝日を除外した日数を計算しておくことを検討いただけますでしょうか。

なお、過去の投稿でも同様のご要望を頂いており、本件についてもFeature-Requestとしてアーカイブし、製品チームへのフィードバックとさせていただきます。どうぞよろしくお願いいたします。