【社区答疑】使用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个问题:

  1. 需要区分是按列生成还是按行生成(按列生成用ROW函数,按行生成用COLUMN函数)

  1. 生成多少连续数(连续数N)

  1. 因此按列生成为=INT(ROW(A列的第连续数N行单元格)/连续数N),按行生成公式为=INT(COLUMN(连续数N列的第1行的单元格)/连续数N)

对于巷道号,还需要对其格式化为“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表格函数公式自动生成库位号👈


往期社区答疑帖子推荐:

【社区答疑】制作表格思路及表格调整(一)

【社区答疑】通过WPS表格的数据透视表转换表格结构(二)

【社区答疑】通过WPS表格的函数完成表格最终需求(三)

【社区答疑】使用WPS表格函数公式自动生成库位号(一)

【社区答疑】通过WPS表格JS宏事件完成点击后显示结果

上海
浏览 1105
收藏
3
分享
3 +1
+1
全部评论