全文约2300字;
阅读时间:约5分钟;
听完时间:约10分钟;
在APS(Advanced Planning and Scheduling)自动排程系统中,工作日历是极其重要的组成部分,对整个排程过程有着直接影响。工作日历定义了工厂内部哪些时间被视为可用的工作时间,包括标准工作日、班次安排、休息日和假期等。它是APS系统规划的基础之一,用于确定何时可以安排生产活动以及何时不可用(如周末、节假日或维护时段)。
无论工厂是否采用APS系统,工作日历都是编制生产计划的关键依据之一。它通过将时间划分为可用时间段和不可用时间段来实现这一点。例如,它可以详细列出每周的工作天数及每天的工作小时数。此外,工作日历还处理例外情况:除了常规的工作时间和休息时间外,它还可以记录临时性的变动,比如公共假日或工厂停工检修等情况。同时,工作日历也考虑到了不同员工的不同工作模式,如全职、兼职或轮班制度等。
对于那些未使用APS系统的工厂来说,利用表格来编制工作日历也是一种非常高效的方法。这种方法能够清晰地展示出所有相关信息,并且易于调整和更新。
确定日期在设计工作日历表格时,目标是创建一个“一劳永逸”的公式,这样即使时间发生变化也不需要手动调整。为了达到这个目的,可以一次性生成未来10年甚至20年的所有日期。由于工作日历通常只需要显示当前年的信息,我们可以使用筛选函数来提取并展示当年的日期。
在A2单元格中输入以下动态数组公式(自动填充):
=LET(A,SEQUENCE(3650,,"2024/01/01"),FILTER(A,YEAR(A)=YEAR(TODAY())))
公式解释:
SEQUENCE(3650, , "2024/01/01"):
SEQUENCE 函数用于生成一系列连续数字或日期。
第一个参数 3650 指定序列中的元素数量,这里假设一年有365天,因此3650天大约覆盖了10年的时间。
第二个参数为空,意味着默认步长为1。
第三个参数 "2024/01/01" 是序列开始的第一个日期。
FILTER(A, YEAR(A) = YEAR(TODAY())):
FILTER 函数根据条件筛选数组中的元素。
A 表示由 SEQUENCE 生成的所有日期。
YEAR(A) 提取每个日期的年份。
YEAR(TODAY()) 获取当前日期的年份。
条件 YEAR(A) = YEAR(TODAY()) 筛选出与当前年份相匹配的所有日期。
通过这种方式,你可以得到一个包含当前年度所有日期的列表,并且随着年份的变化,公式会自动更新以显示正确的年份数据,而不需要每年手动更改。这种方法大大减少了维护成本,提高了工作效率。
日期相关为了便于后续的数据分析和汇总,在工作日历旁边增加三个分类项:“月份”、“星期”和“周数”。请按照以下方式录入相应的公式(特别注意参数的选择):
月份:
=MONTH(A2#):MONTH 函数从给定的日期中提取月份。该公式将返回该日期所在的月份,结果为1到12之间的整数。
星期:
=WEEKDAY(A2#,2):
WEEKDAY 函数用于确定某一天是一周中的哪一天。
第二个参数2表示一周从星期一开始(1代表周一,7代表周日)。如果省略这个参数,默认值是1,即一周从星期天开始(1代表周日,7代表周六)。该公式将返回该日期是一周中的第几天,范围是从1到7。
周数:
=WEEKNUM(A2#,2)
公式解释:
WEEKNUM 函数计算一年中的第几周。
第二个参数2同样表示一周从星期一开始。如果省略这个参数,默认值是1,即一周从星期天开始。该公式将返回该日期位于当年的第几周,范围是从1到53或更多(取决于具体年份和所选的周定义)。
通过上述公式的应用,可以轻松地从日期数据中提取出月份、星期几以及一年中的周数信息,从而有助于进一步的数据分析和汇总工作。确保在实际使用时根据需要调整公式引用的单元格地址。
出勤工时根据该工厂的出勤工时原则,星期天不上班,星期三和星期六不加班,其他时间可以加班。具体来说,不加班的日子工作时间为8小时,加班的日子工作时间为11小时。基于这一规则,可以使用以下公式来设置每天的工作时长:
=XLOOKUP(C2#,{1;2;3;4;5;6;7},{11;11;8;11;11;8;0})
公式解释
XLOOKUP 是一个非常强大的查找函数,它可以查找一个值,并返回相应的结果。
第一个参数 C2 是你要查找的值,在这个例子中,它代表一周中的某一天(假设C2单元格中是数字1到7,分别对应周一到周日)。
第二个参数 {1,2,3,4,5,6,7} 是一个数组,包含了所有可能的一周日期编号。
第三个参数 {11,11,8,11,11,8,0} 是一个数组,与第二个参数一一对应,表示每一天对应的出勤工时:
星期一 (1) 和 星期二 (2):加班,11小时
星期三 (3):不加班,8小时
星期四 (4) 和 星期五 (5):加班,11小时
星期六 (6):不加班,8小时
星期天 (7):不上班,0小时
通过以上公式可以发现,对于多条件判断,有时候 XLOOKUP 函数会比 IFS 函数或 IF 函数更加方便和灵活。使用 XLOOKUP 时,只需要定义一次查找范围和结果范围,而不需要多次引用同一个单元格。相比之下,如果使用 IFS 函数,公式中需要多次引用相同的单元格(如 C2),看起来会比较繁琐。
使用 IFS 函数的公式
=IFS(C2=1,11,C2=2,11,C2=3,8,C2=4,11,C2=5,11,C2=6,8,C2=7,0)
XLOOKUP 的优点:
XLOOKUP 只需定义一次查找范围和结果范围,减少了重复引用同一单元格的情况。
代码更简洁,易于阅读和维护。
IFS 函数的缺点:
在 IFS 函数中,每个条件都需要单独列出,并且每次都要引用相同的单元格(如 C2),这使得公式看起来较为冗长和复杂。
今日总结在APS自动排程系统中,工作日历是确保生产计划顺利进行的关键组成部分。它不仅定义了可用的工作时间和休息时间,还能够处理临时性的变动,如公共假日或工厂停工检修等。无论是否采用APS系统,一个清晰、详细的工作日历都是编制生产计划的基础。
通过使用WPS中的动态数组公式和筛选函数,可以高效地生成和管理多年的工作日历,从而减少手动调整的需要。此外,利用 MONTH、WEEKDAY 和 WEEKNUM 等函数,可以轻松提取日期相关的月份、星期几和周数信息,进一步增强数据的分析和汇总能力。
对于出勤工时的计算,XLOOKUP 函数提供了一种简洁且灵活的方法,尤其适用于多条件判断。与 IFS 函数相比,XLOOKUP 只需定义一次查找范围和结果范围,避免了多次引用同一单元格的情况,使公式更加简洁易读。然而,IFS 函数也有其适用场景,尤其是在逻辑关系较为复杂的条件下。
总之,合理利用WPS中的各种函数和工具,可以帮助工厂PMC计划员更有效地管理和优化工作日历,提高生产计划的准确性和灵活性,最终提升整体运营效率。