整合WPS新函数:REDUCE、LAMBDA与VSTACK,构建高效BOM整理解决方案
优秀创作者
当PMC进行MRP需求计算时,必须对BOM物料清单的结构具备高度熟悉度,确保能够高效地校正与整理不合规的BOM表格。一旦完成整理,规范化的对应关系即可顺利通过标准化表格形式导入至信息化系统中。
通常情况下,信息化程度较低的工厂,其BOM物料清单的规范性往往较弱,可能存在多种多样的格式差异。以下图所示的BOM对应关系表为例,其中:
A列记载物料编号,
B列则记录与其对应的电子板编号。
其对应规则为:若一个物料编号仅对应一个电子板编号,则直接显示该单一板号;若对应多个板号,则以逗号分隔列出所有相关板号。例如,“A2=0CK102BK56A、B2=C204,C205,C206,C213”,表示物料编号A2对应4个不同的电子板编号:C204、C205、C206和C213。
当前任务要求将上述的对应关系进行拆分处理,即将一个物料编号所对应的多个电子板编号,逐一拆分为独立的行项,确保每个电子板编号仅对应一个物料编号,并在拆分后添加相应的序号标识。以先前示例中的4个板号为例,应将其拆分为四行数据,每行均对应料号“0CK102BK56A”,并分别标注编号为1、2、3、4。鉴于待处理数据量较大,需要利用WPS表格的函数功能,设计出一键式快速整理数据。
需求分析
在上述数据中,编号与板号之间呈现明显的一对多关系。尽管如此,这些对应的多个板号并非分布在各自独立的单元格中,而是被合并存放于同一个单元格内,并通过逗号“,”作为分隔符进行区分。鉴于存在这一特定的分隔符号,我们可以有效地运用“TEXTSPLIT”函数,针对此符号对含有多个板号的单元格进行逐行拆分,从而实现数据的规范化。
在成功对含有多个板号的单元格进行分列后,我们可结合使用“IF”函数来动态返回与之对应的编号。其逻辑如下:每当分列操作产生一行新的板号数据,就返回一个相应的编号。至于编号的具体数值,可借助“SEQUENCE”函数自动生成连续的序号序列。
编号的生成依据为经过分列操作后所得到的行数,该行数数据可通过运用“ROWS”函数精确计算得出。基于此,我们能够运用“IF”、“SEQUENCE”等函数为分列后每一行独立的板号数据赋予合适的编号。
为完成整个处理流程,后续可采用“REDUCE”函数结合“LAMBDA”匿名函数以及“VSTACK”和“DROP”函数,对已编号的数据进行逐行累加式迭代处理。这一系列函数的协同工作将确保最终生成的数据结构符合预期需求,圆满实现对原始多板号单元格的分列、编号及有效组织。
数据分行
对合并单元格的板号进行按行分列,录入函数:
=TEXTSPLIT(C3,,",")
效果如下图所示:
对应P/N
把板号分离后,需要对应原来的编号,也就是资材P/N,这里用IF的经典数组应用来实现,录入以下函数:
=IF({1,0},B3,TEXTSPLIT(C3,,","))
效果如下图:
数据编号
数据编号的生成依据为经过分列处理后的行数。为实现这一目标,首先可为分列后的数据指定一个名称,例如“A”,应用公式 =TEXTSPLIT(C3,,",") 进行分列。接下来,使用 ROWS(A) 函数计算分列后所得数组“A”的行数。
以此行数为基础,利用SEQUENCE 函数生成一个与之长度相匹配的数字序列。最后,借助 HSTACK 函数将这个数字序列与分列后的原始数据并行排列,从而为每一条原始数据项赋予相应的编号。这样便完成了数据的编号工作。
录入以下公式:
=LET(A,TEXTSPLIT(C3,,","),HSTACK(SEQUENCE(ROWS(A)),IF({1,0},B3,A)))
效果如下图:
Y值转换
在进行数据合并之前,为了确保与通过REDUCE 函数所定义的唯一 Y 值相匹配,需对原始公式进行适当调整。原公式中涉及单元格 B3 和 C3,然而这两者无法直接对应到单一的 Y 值。为解决这个问题,我们对引用 C3 的部分进行修改,以使其与 B3 单元格保持在同一行但不同列的位置上。
具体做法是,用OFFSET 函数替换对 C3 的直接引用,新的公式结构如下:=OFFSET(B3,,1)。这里,OFFSET 函数以 B3 为基准单元格,第一个逗号后面为空表示行偏移量为 0(即保持在同一行),第二个逗号后面数值 1 表示列偏移量为 1,即向右侧移动一列。如此一来,原公式中的 C3 单元格被等价替换成与 B3 同行且在其右侧一列的单元格,从而确保了二者共同对应一个唯一的 Y 值。这样,经过转换后的公式便适于在数据合并过程中与相应的 Y 值关联。
数据合并
在完成Y 值的转换之后,现已具备进行数据堆叠合并的条件。为此,可运用以下公式:
=DROP(REDUCE("",C3:C13,LAMBDA(X,Y,VSTACK(X,LET(A,TEXTSPLIT(Y,,","),HSTACK(SEQUENCE(ROWS(A)),IF({1,0},OFFSET(Y,,-1),A)))))),1)
通过执行该公式,即可实现一键整理并编号的高效数据整理效果。
效果如下图所示:
317 【案例解析】信息化系统BOM数据不规范?看PMC如何化繁为简
316 PMC实战分享:如何应对大型零部件逐日管控难题与WPS表格模板设计
315 巧用表格函数优化销售业绩分配:提升奖金计算效率与准确性
314 巧用WPS 新函数:无辅助列情况下处理合并单元格查询统计难题
313 破译订单堆叠难题:WPS SCAN函数在PMC生产计划中的应用实例
312 PMC的日常挑战:如何用WPS表格精准抓取单元格内的数字信息
311 零件产销存报表难题:不规范数据格式与跨页数据整合的困局与破局
310 WPS最新函数技巧:精准定位与智能舍入,罗马数字秒变阿拉伯数字
309 PMC精益库存管理与订单分配自动化设计WPS一站式报表模板
308 工厂信息化升级实战:巧解无规律物料编码,动态提取字母组合
307 一招GET!借助通配符解决表格数据汇总难题:SUMIF函数实例详解
306 一键生成:RANDARRAY 函数在数据分组与数学作业个性化定制中的妙用
305 实战演练:10种创新策略解锁WPS表格函数在成绩查询中的高效应用
304 步步详解:运用WPS函数整合工厂报表,实现全年度产品数据深度挖掘
303 运用WPS新函数实现工厂产销存报表的智能化整合与数据分析
302 BOM转换策略:树型BOM与父件子件BOM的优缺点分析及其相互转换方法
298 输入法配合WPS表格公式,轻松实现虚拟数据批量生产:助力讲师快速培训演示
297 探究二维与一维报表的奥秘:掌握三种实用转换策略,应对庞大数据量挑战
296 从理论到实践:WPS 内测SCAN函数在销售金额稳定性评估中的神奇运用
295 新旧交织,效率升级:WPS表格新函数REDUCE、BYROW等在复杂业务场景下的灵动
294 WPS内测版新功能揭秘:“SCAN”迭代函数的运用与实践
优秀创作者
优秀创作者