摘要:大家好,我是古老师,专注于PMC(生产计划与控制)领域的教学。今天我们要介绍的是PMC系列中的第10个表格模型——编号表格模型。此模型适用于在数据分析过程中需要对数据进行编号的场景,能够自动生成一系列数字,如1、2、3等。特别是在多条件判断中需要唯一标识的情况
全文约1500字
大家好,我是古老师,专注于PMC(生产计划与控制)领域的教学。今天我们要介绍的是PMC系列中的第10个表格模型——编号表格模型。此模型适用于在数据分析过程中需要对数据进行编号的场景,能够自动生成一系列数字,如1、2、3等。特别是在多条件判断中需要唯一标识的情况下,可以通过创建数字生成辅助列,并将其作为函数引用的一个条件。
此外,利用该模型生成数字的特点,结合设置日期函数和日期格式的功能,还可以自动创建工作日历等数据。这个表格模型的核心函数是SEQUENCE函数。通过使用SEQUENCE函数,我们可以轻松实现上述所有功能,提高数据分析的效率和准确性。
SEQUENCE函数的参数相对简单,主要由第一个参数(行数)和第二个参数(列数)构成。例如:
当仅指定行数为10时,公式为 =SEQUENCE(10),此时将在垂直方向(行)生成一系列数字:1、2、3……
如果行数参数留空而仅指定列数为5时,公式为 =SEQUENCE(,5),则在水平方向生成一系列数字:1、2、3……
第三个参数和第四个参数通常不需要特别指定,默认开始数字为1,增量也为1。
基于这个函数的特点,结合统计函数可以创建一个自动编号的动态数组模型。例如,该模型可以根据B列的数据自动编号,当B列的数据增加或减少时,相应的数字序号也会自动调整。具体实现公式如下:
=SEQUENCE(COUNTA(B2:B1000))
函数解释:
COUNTA(B2:B1000) 用于计算B列中非空单元格的数量。
SEQUENCE(...) 根据COUNTA的结果生成相应数量的连续数字,从而实现根据B列数据的变化自动更新编号的功能。这样,每当B列中的数据有增减时,序列号会自动调整以匹配新的数据量。
在编制《月度生产计划》时,PMC需要对未来日期进行排程。此时可以设计一张二维表格,垂直方向列出待排程的订单,水平方向列出具体的排程日期,而交错区域则填写对应的订单数量。这种表格是PMC行业中经典的二维排程计划表。
由于计划常有变动,手动调整一个日期可能会影响后续所有日期。例如,如果开始排程日期是1月1日,后续日期依次为1月2日、3日等,一旦需要将排程起始日期调整为1月29日,则后续日期需全部手动更新为1月30日、31日等。
为了减少手动拖拽并简化日期调整过程,可以利用SEQUENCE函数的特点来实现动态日期生成。具体步骤如下:
在C1单元格中输入开始排程的日期(如1月29日)。
在C2单元格中输入排程天数(如9天)。
在E3单元格中输入公式 =SEQUENCE(, C2, C1)。
这样,通过上述设置生成的日期序列将根据C1和C2单元格中的值自动调整。只需修改这两个单元格的内容,即可实现日期的自动更新,使生产计划变得更加灵活高效。这种方法不仅减少了手动操作的工作量,还提高了计划调整的准确性和效率。
查找与引用是PMC在计划编制中常用的技巧,例如根据工单号查找《生产计划排程》中对应的排程数量。传统方法通常使用VLOOKUP函数进行查找和引用,这种方法不仅需要手动选择查询条件和查询区域,还需要手动输入返回的列号。如果需要返回多个条件(列),则需要多次输入公式,非常不便。
利用SEQUENCE函数结合INDEX和MATCH函数,可以创建一个全动态的数组公式来批量查找和引用数据,从而简化这一过程。具体实现如下:
在目标单元格中输入以下公式:
=INDEX('2.排程日期'!C4:H15,MATCH(B2:B7,'2.排程日期'!C4:C15,0),SEQUENCE(,5,2))
公式解释:
INDEX('2.排程日期'!C4:H15, ...):指定要从中提取数据的区域,即“2.排程日期”工作表中的C4到H15区域。
MATCH(B2:B7, '2.排程日期'!C4:C15, 0):用于查找B2到B7范围内工单号在“2.排程日期”工作表C4到C15区域中的位置。MATCH函数返回的是找到的第一个完全匹配项的位置。
SEQUENCE(, 5, 2):生成一个1行5列的序列,从2开始,即{2, 3, 4, 5, 6},表示要返回的列号范围。这使得公式可以从指定的数据区域中动态提取多列数据。
通过这种方式,上述公式能够根据给定的工单号(B2:B7)自动查找并引用相应的排程数据,无需为每个返回列单独编写公式。这不仅提高了工作效率,还减少了手动操作带来的错误风险。这种方法特别适用于处理包含多个返回条件的复杂数据集。
来源:古哥计划