Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

休日を除いて24時間経過しているか判定したい

当初の質問内容が分かりにくかったため件名・内容を修正しました。

何卒ご了承くださいませ。

■目的

受付日時から24時間経過(※休日は除く)しているかどうかを判定したい

例)受付日時 2011/12/2(金)  10:00

完了日時 2011/212/5(月)  09:50

→判断:「24時間経過していない」

データにある項目は以下となります

[受付日付]、[受付時間]、[完了日付]、[完了時間]

--------------------------------------

以下にロードスクリプトに書いてみた式を表記します。

エラーなくロードできたもののどう計算してよいかわからずにいます

//見た目的には正しい期限となるのですが計算する場合どのように扱ってよいかわからず。。。

(省略)

LastWorkDate(受付日付,2,$(vHolidayList))&' ' & 受付時間 as 期限,

(省略)

//何日経過したかを計算して結果が「2」以上なら。。。と使おうとしましたが時間の部分の

計算をどうしてよいかわからず。。。

(省略)

NetWorkDays(受付日付, if(isnull(完了日付)=-1,'2011/12/1',完了日付),$(vHolidayList))-1 as 経過日数,

(省略)

このような状態です^^;

目的の判定を得たい場合どのようにすればよいでしょうか。

どなたかご教示頂けないでしょうか。

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

1 Solution

Accepted Solutions
Not applicable
Author

tigerdragon様

お正月休みに色々とやってみた結果、以下の式で目的を果たせました。

     date#(date(受付日付)&' '&受付時間,'YYYY/MM/DD hh:mm') as 受付日時,

     date#(date(完了日付)&' '&完了時間,'YYYY/MM/DD hh:mm') as 完了日時,

     LastWorkDate(受付日付,2,$(vHolidayList))&' ' & 受付時間 as 期限,  

上記で作った項目を利用し、「1」or「0」の判定結果を示す項目を更に作りました。

     if(期限 <=if(isnull(完了日付)=-1,期限,完了日時),1,0) as 判定

当初の説明が悪く大変失礼しました。

ご回答頂きありがとうございました^^

View solution in original post

7 Replies
Not applicable
Author

サンプルデータはありますか?

Not applicable
Author

tigerdragon様

遅くなってすみません。

返信ありがとうございます。

サンプルデータは無い状態です。。

質問に際し、不明点だけを抜き出そうと表現を

修正した部分があり実際のデータとは異なっているためです。

質問が分かりにくいですよね^^;

欲しい結果を取得する方法がそもそも間違っているかも

しれませんので、その点を踏まえて質問を書き直す事に致します。

(お時間下さい)

修正後の質問についてお知恵拝借できそうでしたら助けて頂けますでしょうか。

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

Not applicable
Author

ひとまず、以下のようにしてみたらどうでしょうか。

date(開始日,'YYYY/MM/DD')&' '&開始時間 as 開始日時

timestamp(開始日 & ' ' & 開始時間) as 開始日時

に変更してみたらどうでしょうか。

Not applicable
Author

tigerdragon様

すみません、今しがた返信拝見しました。

(修正した質問をアップした際に気付きました^^;)

頂いた式でやってみます!

ありがとうございます。

Not applicable
Author

tigerdragon様

timestampを使って変更してみたのですが計算がうまくいきません。

--------------------------------------

例)

受付日付:2011/11/2

受付時間:09:00

Timestamp(受付日付 &' '& 受付時間) as 受付日時

→上記のスクリプトで読み込むと

→ 2365/12/31 13:00:00 という表示になります

完了日時も同様に読み込み、差(完了日時-受付日時)を計算してみましたが

実際の差と異なるようです。

Not applicable
Author

関数を間違えました。。。

TimeStamp()ではなく、TimeStamp#()を使用してください。

ロードスクリプト上では、ちょっとうまくいきませんでしたが

UI上ではうまく表示されました。

Not applicable
Author

tigerdragon様

お正月休みに色々とやってみた結果、以下の式で目的を果たせました。

     date#(date(受付日付)&' '&受付時間,'YYYY/MM/DD hh:mm') as 受付日時,

     date#(date(完了日付)&' '&完了時間,'YYYY/MM/DD hh:mm') as 完了日時,

     LastWorkDate(受付日付,2,$(vHolidayList))&' ' & 受付時間 as 期限,  

上記で作った項目を利用し、「1」or「0」の判定結果を示す項目を更に作りました。

     if(期限 <=if(isnull(完了日付)=-1,期限,完了日時),1,0) as 判定

当初の説明が悪く大変失礼しました。

ご回答頂きありがとうございました^^