Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
まさに昨今、話題の集計なのですが・・・
お知恵を貸してください。簡単なような計算なのに手こずってます。
同じ時間帯(分刻み)で一緒に部屋にいた人数を計算したいのです。
下記が入室テーブルになります。
name stime etime
A 10:00 10:10
B 10:09 10:12
C 10:13 10:13
それを下表のように集計したいのですがIntervalMatch?の使い方等
教えて頂ければ幸いです。
時間帯 人数
10:00 1 (Aさんのみだから)
10:01 1
10:02 1
10:03 1
10:04 1
10:05 1
10:06 1
10:07 1
10:08 1
10:09 2 (AさんとBさんだから)
10:10 2
10:11 1 (Bさんのみだから)
10:12 1
10:13 1 (Cさんのみだから)
お手数かけますがよろしくお願い致します。
ドキュメントを添付しました。
※先に投稿したドキュメントにて、ループで使っている関数を間違えていました。失礼しました。
誤:NoOfFields() → 正:NoOfRows()
・10:05:30に入室 → 10:06:05に退室 という人は、10:05と10:06の2分間でカウントする
ということがしたい気がするので、「Duration」のフィールドは使わずに入退出時間だけで実装しました。
日付をまたいでも動作すると思っていますが、実際のデータを見てご確認ください。時間のフォーマット(2020/03/04 09:58:05なのか、2020/3/4 9:58:05なのか、)でも動きが変わるかもしれません。
なお、現実の生データを扱うと、「退室時間が無い」「入室してるはずの人がもう一度入室する」ということがあったりすると思いますので、必要に応じて例外処理を追加したり、元データのクレンジングをしてください。
すごい!!!!!
ご親切に有難うございます。中身のぶん回す部分のロードスクリプト、よく勉強させて頂きます!
早速活用させて頂き、処理は全然できております。 有難うございました。今日勉強のためにマニュアルを見ながら紐解いていたのですが
LOAD
Date#(Text(Date(Date#('$(vStime)', 'YYYY/MM/DD hh:mm:ss') + Date#(recNo()-1,'m'),'YYYY/MM/DD hh:mm:ss')),'YYYY/MM/DD hh:mm:ss') as time_in,
'$(vName)' as name_in
AutoGenerate $(vStayTime);
がなんとなく 特定人物の入室時間分の「分情報」を持つレコードを縦にどんどん作っていくんだろうな、というイメージは沸くのですが、上記スクリプトでそれが具体的に出来る仕組みが難しく、腹に落ちません。
今まで研修テキストに出てきた自動カレンダー作成スクリプトみたいなものを理解せず遠ざけてきたためです。+ Date#(recNo()-1,'m') ここで1分ずつ進めていることをイメージしますが recno()? 何故-1 してるの? などお時間あるときに分解して解説いただけますと幸いです。 申しわけございません・・・( ノД`)シク
Autogenerate や recno()がどういう動作をするものかについては、Qlikのヘルプページを見て下さい。また、「Autogenerate QlikView」で検索すれば、いろんなWebサイトで使い方が紹介されています。
今回のAutogenerate については、以下のページを見れば大体どんな機能かわかると思います。
https://iw-qlikview.com/knowledge/functiontips/autogenerate/
Aさんの入室_10:10、退室_10:20だった場合には以下のデータを作れればよいです。
Aさん、10:10
Aさん、10:11
Aさん、10:12
…
Aさん、10:20
今回の私の処理では、以下のように考えて計算しました。どんなロジックを組んたどしても、ちゃんと動いて、最終的に作りたいデータができていればなんでもよいと思います。
10:10 → 入室時間 + 0分
10:11 → 入室時間 + 1分
10:12 → 入室時間 + 2分
…
これを、入室から退室までかかった時間分、繰り返せばよいことになります。
繰返しの回数は、Autogenerate の後パラメータで制御しますので、入退室時間から計算します。
実際に動いている処理を参考にして、実際に弄って確認するのが一番理解しやすいと思いますので、以下のような手順で作業することをお勧めします。
・はじめに、今から自分はどういうデータを作ればよいかをイメージする(一番大事)
・Webサイトや他人のドキュメントでもいいので、それっぽいロジックを探して動かしてみる
・出来上がったデータが、自分が作りたいデータとどこが違うか確認する
・自分が使うデータを加工したり、ヘルプを見ながらパラメータを弄ったりして調整する
ご親切に有難うございました。アシストさんのページは分かりやすいですね。しっかり勉強します!