370全面解读PMC面试难题:基于WPS表格构建有效工作日历与排产

职场计划有古哥 2024-04-25 06:51:12

从今日起,我将详细解析昨天某外资企业发布的针对PMC工程师职位的面试题目,不仅包括具体的解题过程,还会阐述背后的逻辑思路,特别着重介绍如何运用WPS表格中的公式与函数进行PMC生产排程的高效处理,以及在此过程中所需涉及的专业知识要点。

关于题目背景,简而言之,任务要求基于客户SM与LG各自的订单需求——分别为600K件和400K件产品,制定出从2023年7月23日起的生产排程计划。需注意的是,每日工作时长为22小时,期间白班与晚班各有1小时休息时间,并且周末(周六和周日)不安排生产。并且根据附图中的详尽订单信息及对应工厂的产能实际情况,模拟构建一套涵盖半成品(Semi)至成品阶段的完整生产排程方案,并据此计算出完成100万件成品所需的预计生产周期。

针对于这道题目,其核心在于建立工厂的工作日历。结合所提供的每小时制程产能(UPH)、实际产能爬坡数据以及产品的直通率,我们可以准确地计算出各个制程每日的实际产出量。因此,首要步骤便是创建这份工作日历。

确定日期

在新的工作表中创建并命名一个名为“工作日历”的页面。首先,在B2单元格中输入起始日期。接下来,在B3单元格中插入以下公式:

=SEQUENCE(60,,"2024-07-23")

函数释义:

该函数解释如下:

SEQUENCE(60, , "2023-07-23") 函数的作用是在指定起始日期的基础上生成一个包含60个连续日期的序列。这里省略了第二个参数(步长,默认为1),表示按天递增;第三个参数设定为起始日期“2023-07-23”,因此该函数将生成从2023年7月23日开始的共60个工作日的日期列表。

效果如下图所示:

判断星期

为了满足题目中关于周六和周日不计入出勤日的要求,我们需要先识别这60天内哪些日期是工作日,哪些是休息日。为此,可以运用WEEKDAY函数来辨别每个日期对应的星期几。具体操作时,可在相应的日期单元格后插入如下的函数:

=VLOOKUP(WEEKDAY(B3#,2),{1,"星期一";2,"星期二";3,"星期三";4,"星期四";5,"星期五";6,"星期六";7,"星期日"},2,0)

函数释义:

WEEKDAY(B3#,2):这一部分使用了 WEEKDAY 函数来计算单元格B3#所代表的日期是一周中的第几天。参数2意味着使用的是一个以星期一作为一周第一天(1)到星期日作为一周最后一天(7)的计数体系。

{1,"星期一";2,"星期二";3,"星期三";4,"星期四";5,"星期五";6,"星期六";7,"星期日"}:这部分创建了一个二维数组,列出了数字与对应的星期名称。当 WEEKDAY 函数计算得到的数字与数组的第一列相匹配时,将返回相应行的第二列值。

,2,0):这是 VLOOKUP 函数的剩余参数:第三个参数 2 表示在上述数组中返回匹配值所在列的索引号,由于我们希望返回星期名称,而在数组中它们位于第二列,所以此处填入 2。

第四个参数 0 表示进行精确匹配。在 VLOOKUP 函数中,这个参数尤为重要,因为它决定了查找是否允许近似匹配。在这里设置为 0 意味着我们必须找到确切的匹配项,否则如果没有找到完全一致的数字,函数将返回 #N/A 错误。

效果如下图所示:

出勤工时

基于题目要求,工作日需出勤22小时,而休息日则无需出勤(即出勤时间为0小时)。为此,可以在相应单元格中输入以下 IF 函数来进行判断:

=IF(WEEKDAY(B3#,2)<6,22,0)

函数释义如下:

该函数首先利用 WEEKDAY 函数判断 B3# 单元格区域所代表的日期是一周中的哪一天。参数 2 表示一周的起始日为星期一(记为1),星期日为结束日(记为7)。

如果 WEEKDAY(B3#,2) 计算结果小于6,即日期落在星期一至星期五之间(视为工作日),则函数返回22,表示该天的出勤时间为22小时;

否则,若计算结果不小于6(即日期为星期六或星期日,视为休息日),函数返回0,表示该天的出勤时间为0小时。

效果如下图所示:

至此,我们已成功构建了一个标准的工作日历。接下来的任务是将制程1和制程2各自对应的每小时单位产量(UPH)数据引用进来,以便进一步计算每日产能负荷。在进行这项计算的过程中,务必特别关注产能爬升阶段与产能稳定阶段的数据差异。

未完待续……

全面解读PMC面试难题:基于WPS表格构建有效工作日历与排产

0 阅读:1

职场计划有古哥

简介:感谢大家的关注