【社区答疑】使用WPS表格函数公式自动生成库位号(二)
WPS函数专家
要想下班早,表格必须用的好!
大家好,我是张俊。
关于社区求助关于公式自动生成库位号,求解的答疑帖第二集公式说明来了~
对于上一帖子(【社区答疑】使用WPS表格函数公式自动生成库位号(一))中遇到的进阶公式发布后,许多宝子私信留言,想让对公式进行说明下,以便能够快速的学习和掌握。
四、公式说明
=TEXT(INT(ROW(B672)/672),"R00")&"."&TEXT(MOD(INT(ROW(B672)/42),16)+1,"00")&"."&MOD(INT(ROW(B42)/6),7)+1&"."&MOD(ROW(B6),6)+1
4.1公式拆解
看到这么长的公式,大部分宝子看到后,不知道如何下手;我们需要先冷静分析,要了解公式,先来了解需求,整体编号分别由巷道号、组号、层号和库位号组成,每个号之间用“.”连接,因此我们可以得到如下公式:A&"."&B&"."&C&"."&D,其中A、B、C、D分别代表巷道号、组号、层号和库位号。
我们来看下拆解动画更加方便我们理解,如下图:
通过动画我们可以看出公式中包含了4部分,具体如下:
编号类型 | 公式 |
巷道号 | =TEXT(INT(ROW(B672)/672),"R00") |
组号 | =TEXT(MOD(INT(ROW(B672)/42),16)+1,"00") |
层号 | =MOD(INT(ROW(B42)/6),7)+1 |
库位号 | =MOD(ROW(B6),6)+1 |
看到这里是不是瞬间感觉公式简短了很多了,但是还不明白公式的含义,来,我们接着往下看。
4.2各函数基本用法
公式中包含的了各个函数之间的嵌套,分别由ROW、MOD、INT和TEXT函数组成,我们先来学习各个函数的基本用法。
ROW函数:可参考👉【表格函数】ROW和COLUMN函数基本用法
MOD函数:可参考👉【表格函数】MOD函数基本用法
INT函数:可参考👉【表格函数】INT函数基本用法
TEXT函数:可参考👉【表格函数】TEXT函数基本用法(一)和【表格函数】TEXT函数基本用法(二)
4.3各函数之间的组合应用案例
INT和ROW函数的组合应用案例:可参考👉【函数案例】经典用法之生成连续N个一样等差序列
MOD和ROW函数的组合应用案例:可参考👉【函数案例】经典用法之循环多次生成1到N等差序列
MOD、INT和ROW函数的组合应用案例:可参考👉【函数案例】经典用法之循环多次生成M个1到N的序列
如果还想了解创建连续等差序号的方法,可参考以下帖子👇:
【表格函数】ROW和COLUMN函数经典用法之创建连续等差序号(一)
【表格函数】ROW和COLUMN函数经典用法之创建连续等差序号(二)
【表格函数】ROW和COLUMN函数经典用法之创建连续等差序号(三)
📌 | 温馨提示 虽然上面的应用案例,看起来有些类似且绕口,但是在不同的场景使用效果是不一样的哦~ |
4.4各部分函数公式解析
⏰ | 前情回顾 求助者可能是做仓库管理的,有N多个巷道,编号分别为R01、R02……,每个巷道有16组货架,每个组有7层,每层又有6个库位。 现需要对各个库位号根据WPS表格的函数公式生成库位号的编号,编号格式为“R01.01.1.1”,其中R01(巷道号).01(组号为1-16).1(层号1-7).1(库位号1-6),也就是一个巷道中可以生成6*7*16=672个编号。 |
为了方便大家理解,我根据公式长短和难易程度顺序来逐个解释,具体如下:
库位号
通过需求可以发现“库位号”其实就是循环生成1到6等差序列,可以参考“循环多次生成1到N等差序列”的方法总结,具体如下:
💡 | 对于循环多次生成1到N等差序列的问题,只需注意2个问题: 1.需要区分是按列生成还是按行生成(按列生成用ROW函数,按行生成用COLUMN函数) 2.生成多少循环数(循环数N) 3.因此按列生成的公式为=MOD(ROW(A列的第连续数N行单元格),循环数N)+1,按行生成公式为=INT(COLUMN(连续数N列的第1行的单元格)/循环数N)+1 |
因此使用公式如下:
=MOD(ROW(B6),6)+1
层号
通过需求可以发现“层号”其实就是循环多次生成6个1到7等差序列,可以参考“循环多次生成M个1到N的序列”的方法总结,具体如下:
💡 | 对于循环多次生成M个1到N的序列的问题,只需注意3个问题: 1.需要区分是按列生成还是按行生成(按列生成用ROW函数,按行生成用COLUMN函数) 2.生成多少连续数(连续数M) 3.生成多少循环数(循环数N) 4.因此按列生成的公式为=MOD(INT(ROW(A列的第(连续数M*循环数N)行单元格)/连续数M),循环数N)+1 |
因此使用公式如下:
=MOD(INT(ROW(B42)/6),7)+1
巷道号
通过需求可以发现“巷道号”其实就是生成672个一样的等差序列,可以参考“生成连续N个一样等差序列”的方法总结,具体如下:
💡 | 对于生成连续N个一样等差序列的问题,只需注意2个问题:
|
对于巷道号,还需要对其格式化为“R00”样式,因此使用TEXT函数嵌套,具体公式如下:
=TEXT(INT(ROW(B672)/672),"R00")
组号
这个其实是最难的,也是最绕的,因此放在了最后解释。其实只要我们理解了“层号”的逻辑后,这个其实也不算难;通过需求可以发现“组号”其实就是循环多次生成42个1到16等差序列,可以参考“循环多次生成M个1到N的序列”的方法总结的公式为:=MOD(INT(ROW(A列的第(连续数M*循环数N)行单元格)/连续数M),循环数N)+1,因此公式变更为=MOD(INT(ROW(A列的第(16*42)行单元格)/42),16)+1,因此公式为MOD(INT(ROW(B672)/42),16)+1,而由于要保留为两位数,不足的签名用0填充,因此需要用TEXT函数的“00”格式来处理,因此最最终公式为:=TEXT(MOD(INT(ROW(B672)/42),16)+1,"00")
整体编号
最后不要忘记对4个公式组合,如果是添加辅助列形式,可以用此公式完成即可,具体公式如下:=C1&"."&D1&"."&E1&"."&F1即可,具体如下图所示:
但是,如果我们不用辅助列,想在一个单元格里直接完成的话,可直接输入公式完成,具体公式如下:=TEXT(INT(ROW(B672)/672),"R00")&"."&TEXT(MOD(INT(ROW(B672)/42),16)+1,"00")&"."&MOD(INT(ROW(B42)/6),7)+1&"."&MOD(ROW(B6),6)+1
💡 | 注意 由于A列需要添加指定的数字序列,方便双击向下快速填充,因此公式引用的单元格都是从B列开始。 |
关于使用WPS表格函数公式自动生成库位号的方法,你学会了吗?学会的话,记得点赞❤️❤️❤️并在评论区评论“我学会了!”,您的点赞❤️❤️❤️和评论是对我最大的支持!
🚩 | 练习文件:👉使用WPS表格函数公式自动生成库位号👈 |
往期社区答疑帖子推荐: