日付/時刻を比較する列合計<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />こんにちは、値が特定の範囲内にある場合に値を追加する方法を特定しようとしています。col sum を試しましたが、テーブルの値を比較する方法がわかりません(スクリプト作成は初心者です) )
アイデアは、顧客が特定の時間に来て、x 分間滞在して立ち去るというものです。エリアに入るにつれて、顧客が特定の時間範囲内にいる場合、占有率 (顧客の数) が増加します。
ご指導いただければ幸いです、ありがとうございます。
FC

Re: 日付/時刻を比較する列合計お役に立ててうれしいです。 元の投稿で述べたように、あなたの問い合わせをきっかけに、現在取り組んでいるプロジェクトについてすぐに調べる必要があることを調べるようになりました。
Re: 日付/時刻を比較する列合計うまくいきました、ありがとうmdawson69
Re: 日付/時刻を比較する列合計これは、スクリプト自体よりも、スクリプトに関する私の知識に問題があると思います。 スクリプトの実装方法をもう少し読んで試してみます。うまくいったらお知らせします。 ご支援に改めて感謝申し上げます。
Re: 日付/時刻を比較する列合計最大サービス レベルの制約 (この場合は占有できるホテルの部屋の最大数) を考慮に入れると、占有率について議論する必要はなくなります。それは、ある時点で占有されている部屋の数にすぎないからです。 最初の箇条書きは使用率です。 tと定義されている、
占有率 ÷ 総部屋数
したがって、その式を含む列を追加します。
残りの箇条書きは「要件の定義」に該当します。これは、一部のクライアントとの間でよく起こる問題です。 このような問い合わせでは、クライアントが何を意味しているのかを知っていると思い込む前に、クライアントが何を期待しているのかを確認する必要があることを学びました。 たとえば、当社のクライアントの 1 つが待ち時間 (シミュレーション モデリングにおける遅延として知られる) を定義する方法は、ほとんどの離散イベント シミュレーション テキストで同じメトリクスが定義される方法、ましてやほとんどのシミュレーション ソフトウェアが報告する方法とは大きく異なります。 その定義は間違っていません。それは非常に状況に応じたものですが、それは遅延の標準的な定義ではありません。
「指定された日に占有されている部屋の数を計算するにはどうすればよいですか。 」 1 日あたりの実行占有者数を求めていますか、それとも毎日の最大占有者数の概要を求めていますか?
「さらに、AgencyGroup ごとの占有率をどのように計算できますか? 」同上。
Re: 日付/時刻を比較する列合計スクリプトを実行する際にどのような問題がありましたか? 私のサンプル データ テーブルには変数 (列) があなたのテーブルよりも少ないため、率直に言って、あなたが遭遇する問題の 1 つは、私のスクリプトに厳密に従っている場合、プロセスを通じてすべての列が保持されることです。 そのためには、プロセスを通じて新しいデータ テーブルが作成されるときにすべての列が確実に含まれるようにするために、コードに比較的小さな調整を加える必要があります。
Re: 日付/時刻を比較する列合計ご意見ありがとうございます。
私たちの占有率(この場合はホテル管理における客室占有率)についても同様のソリューションを考えていました。
チェックイン日とチェックアウト日を持っています。 チェックインすると、部屋が占有されたことになり、部屋数は 516 室に制限されます。
- 占有率 (占有部屋数/516) を行ごとに計算するにはどうすればよいですか。
- 指定された日に占有されている部屋の数を計算するにはどうすればよいですか
- さらに、AgencyGroup ごとの占有率をどのように計算できますか?
よろしくお願いします。

Re: 日付/時刻を比較する列合計これは素晴らしい! ありがとうございます。「段階的に」動作させることができました。何らかの理由でスクリプトが期待どおりに動作しませんでした。もう少し勉強する必要があるようです。
Re: 日付/時刻を比較する列合計あなたの問い合わせは、私たちのモデル開発プロジェクトのために構築する必要があるテストと一致しています。 あなたの表現は少しわかりにくいですが、実際に行う必要があるのは、各顧客のサービス拠点での入退場イベントに基づいて占有テーブルを作成することだと思います。 特定の時間における占有率は、複数の入場イベントにまたがる可能性がある各顧客の退場時間の相互依存性によって複雑になります。 これは、使用率を決定しようとするときの典型的なシミュレーション モデリングの問題であり、試行しているものよりも 1 つ上のレベルにあります。
必要なスクリプトを示す前に、プロセスを説明します。

まず、例と同様のデータテーブルを作成しました。 この形式では、データはエージェント中心であり、入場イベントと退場イベントが同じ行に記録されます。 イベントを積み重ねてイベントを分離する必要があります。

これでイベントは分離されましたが、デフォルトでは依然としてエージェントによってグループ化されています。 イベントを時間順に並べる必要があるため、データ テーブルを並べ替える必要があります。 並べ替える前に、エントリの前に終了が発生することを確認する必要もあります。 後者は目的にとって重要ではないかもしれませんが、私たちは常にキャパシティが限られたシステムを扱っているため、同じタイムスタンプを持つ入場イベントと退場イベントは、エージェントが終了する可能性が最も高いため、終了、入場の順に順序付ける必要があります。新しいエージェントが入る前に場所を確認します。 それが完了したら、時間とアクションでデータテーブルを並べ替えます。

イベントが適切な順序になったので、占有状況を追跡するための列を追加できます。

[占有] 列には、前の占有と現在の行のアクションに基づいて各行の占有を決定する式が含まれています。 また、この数式は、最初の行が最初のエントリであると想定し (そうあるべきです)、最初の行の占有率を 1 に設定します。 ここで、報告された占有率を元のテーブルの方向に戻すために、テーブルを分割する必要があります。

「占有」列には、各エントリに基づいた占有が表示されますが、サービス場所からの以前の退出も考慮されます。 分割操作により [占有] 列が [エージェント ID] 列の後に配置されたため、スクリプトはそれを最後の列に移動します。
スクリプトは次のとおりです。
デフォルトの名前はここにあります( 1 ) ;
dt =現在のデータテーブル() ;
dt <<スタック(
コラム( :エントリ、 :出口) 、
ソースラベル列( "アクション" ) 、
積み上げデータ列( "時間" )
) ;
近い(dt、保存なし);
dt2 =現在のデータテーブル() ;
dt2 :アクション<<プロパティの設定( 「値の順序付け」 、 { "出口" 、 "エントリ" }) ;
dt2 <<選別(
に( :時間、 :アクション) 、
上昇、
テーブルを置き換える( 1 )
) ;
dt2 <<新しい列(
「占有」 、
方式(
もしも(行() == 1 、
1 、
もしも( :アクション== "エントリ" 、
遅れ( :占有率、 1 ) + 1 、
遅れ( :占有率、 1 ) - 1
)
)
)
) ;
dt2 <<スプリット(
分割方法( :アクション) 、
スプリット( :時間) 、
グループ( :エージェントID )
) ;
近い( dt2 、保存しない) ;
dt3 =現在のデータテーブル() ;
dt3 <<選択した列を移動する({ 「占有」 } 、最後まで) ;