比较日期/时间的列总和<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />您好,我正在尝试确定如何添加在一定范围内的值,我已经尝试过 col sum 但我不知道如何比较表值,(脚本编写新手)
我的想法是,我让客户在某个时间进来,停留 x 分钟然后离开,随着进入该区域,如果他们在某个时间范围内在一起,占用率(客户数量)就会增加。
我真的很感谢指导,谢谢。
FC

回复:比较日期/时间的列总和乐意效劳。 正如我在原来的帖子中所说,您的询问让我研究了一些我很快就需要为我目前正在进行的项目研究的东西。
回复:比较日期/时间的列总和我成功了,谢谢 mdawson69
回复:比较日期/时间的列总和我相信这更多的是我对脚本的了解而不是脚本本身的问题! 我将阅读更多如何实现脚本来尝试它,一旦它起作用我会让你知道。 再次感谢您的支持!
回复:比较日期/时间的列总和一旦您考虑了最大服务水平的约束(在本例中为可能占用的酒店房间的最大数量),您就不再讨论占用率,因为这只是某个时间占用的房间数。 你的第一个要点是利用率,有时t定义为,
入住率 ÷ 房间总数
因此,您将添加一个包含该公式的列。
剩下的要点属于“定义您的要求”,这是我们与一些客户经常遇到的问题。 我了解到,在进行此类询问时,先确保我知道客户的期望,然后再假设我知道他们的意思。 例如,我们的一位客户定义等待时间(在仿真建模中称为延迟)的方式与大多数离散事件仿真文本中定义相同指标的方式非常不同,更不用说大多数仿真软件报告的内容了。 他们的定义并没有错——它非常符合上下文——但这不是延迟的标准定义。
“我如何计算每天占用的房间数量。 ”您需要的是每日运行入住率还是每天最大入住率的摘要?
“此外,我如何计算 AgencyGroup 的入住率”与上面相同。
回复:比较日期/时间的列总和您运行脚本时遇到了哪些问题? 我的示例数据表的变量(列)比您的少,所以我知道您会遇到的一个问题是,如果您严格遵循我的脚本,将在整个过程中保留所有列。 这将需要对代码进行相对较小的调整,以确保在通过该过程创建新数据表时包含所有列。
回复:比较日期/时间的列总和谢谢你的反馈。
我想知道我们的入住是否有类似的解决方案,在本例中是酒店管理中的房间入住。
我有入住日期和退房日期。 当他们登记入住时,就意味着他们占用了一个房间,房间数量限制为 516 间。
- 我如何逐行计算占用率百分比(占用的房间数/516)。
- 我如何计算每天占用的房间数
- 此外,我如何计算 AgencyGroup 的入住率
提前谢谢了。

回复:比较日期/时间的列总和这很棒! 非常感谢,我能够“一步一步”使其工作,由于某种原因,脚本没有按预期工作,我想我需要多学习一点。
回复:比较日期/时间的列总和您的询问与我必须为我们的模型开发项目构建的测试一致。 您的措辞有点令人困惑,但我推测您实际上需要做的是根据每个客户在服务地点的进入和退出事件创建一个占用表。 任何给定时间的占用情况都因每个顾客的退出时间的相互依赖性而变得复杂,该退出时间可能跨越多个进入事件。 这是尝试确定利用率时的典型模拟建模问题,利用率高于您尝试的水平。
在展示必要的脚本之前,我将引导您完成整个过程。

首先,我创建了一个与您的示例类似的数据表。 在这种形式中,数据以代理为中心,进入和退出事件记录在同一行中。 我们需要通过堆叠事件来分离事件。

现在事件已被分开,但默认情况下它们仍然按代理分组。 我们需要按时间顺序排列事件,因此需要对数据表进行排序。 在排序之前,我们还需要确保退出发生在条目之前。 后者对于您的目的可能并不重要,但我们总是处理容量有限的系统,因此具有相同时间戳的进入和退出事件需要按退出然后进入进行排序,因为代理很可能退出新特工进入之前的位置。 完成后,我们按时间和操作对数据表进行排序。

现在事件已按正确顺序排列,可以添加一列来跟踪占用情况。

占用列有一个公式,该公式根据先前的占用和当前行中的操作来确定每行中的占用。 该公式还假设第一行是第一个条目(应该是),并将第一行的占用率设置为 1。 现在我们需要拆分桌子,以便我们获得原始桌子方向以及报告的占用情况。

占用率列现在显示基于每个条目的占用率,但也考虑了之前从服务位置退出的情况。 拆分操作将 Occupancy 列放置在 Agent ID 列之后,因此脚本会将其移动到最后一列。
这是脚本:
名称默认为此处( 1 ) ;
dt =当前数据表() ;
dt <<堆(
列( :入口, :出口) ,
源标签列( “行动” ) ,
堆叠数据列( “时间” )
) ;
关闭(dt, 不保存);
dt2 =当前数据表() ;
dt2 :行动<<设置属性( “价值排序” , { “出口” , “入口” }) ;
dt2 <<种类(
经过( :时间, :行动) ,
上升,
替换表( 1 )
) ;
dt2 <<新专栏(
“占用” ,
公式(
如果(排() == 1 ,
1 ,
如果( :行动== “入口” ,
落后( :占用, 1 ) + 1 ,
落后( :占用, 1 ) - 1
)
)
)
) ;
dt2 <<分裂(
分割依据( :行动) ,
分裂( :时间) ,
团体( :代理 ID )
) ;
关闭( dt2 ,不保存) ;
dt3 =当前数据表() ;
dt3 <<移动选定的列({ “占用” } ,到最后) ;