粉丝求助SOS:如何根据总箱数排箱号序号?

如下图所示:

A列为已知的总箱数,B列为我们想要得到的箱号序号。

比如,A1总箱数5,那么箱号就是1-5;A2总箱数1,那么箱号要上接前5箱,返回箱号6;A3总箱数10,那么箱号上接前6箱,返回箱号7-16;A4总箱数1,那么箱号上接前16箱,返回箱号17。

原理就是这么个意思。

小编给到的解决方案是sum+if+&,运用“累计”与“逻辑”的思维,快速实现最终的目标。

第一步:获取箱号起始数字

我们可以这样输入公式:

=SUM(A$1:A1,1)

当前行之前所有箱数的累计和加1,表示当前范围的第一个箱号。

A1是文本,SUM函数忽略它(视为0),不影响数字计算。

运算过程原理:

  • SUM(A$1:A1,1)=0+1=1
  • SUM(A$1:A2,1)=(0+5)+1=6
  • SUM(A$1:A3,1)=(0+5+1)+1=7
  • SUM(A$1:A4,1)=(0+5+1+10)+1=17

第二步:获取箱号结束数字

我们可以这样输入公式:

="-"&SUM(A$1:A2)

包括当前行在内所有箱数的累计和,表示当前范围的最后一个箱号。

A1是文本,SUM函数忽略它(视为0),不影响数字计算。

运算过程原理:

  • "-"&SUM(A$1:A2)=-(0+5)=-5
  • "-"&SUM(A$1:A3)=-(0+5+1)=-6
  • "-"&SUM(A$1:A4)=-(0+5+1+10)=-16
  • "-"&SUM(A$1:A5)=-(0+5+1+10+1)=-17

第三步:条件判断

添加IF函数逻辑判断:

=IF(A2=1,"","-"&SUM(A$1:A2))

IF 条件:

  • 如果箱数=1,返回空字符串(""),表示只有一个箱号(只显示起始数字)。
  • 如果箱数 > 1,返回 "-" & SUM(A$1:A2)

SUM(A$1:A2) 在行n时计算从A1(标题,忽略)到A_n(当前行)的累计箱数(结束数字)。

意义:

结束数字=到当前行为止所有箱数的累计和。条件判断确保箱号格式正确,是单个数字或范围。

最后:

=C2&D2

&连接操作:

将起始数字和条件部分的结果连接起来。

结果格式:

箱数=1时,为“起始数字”;箱数>1时,为“起始数字-结束数字”。

我们可以将辅助列区域删除,用一个整体公式表示即可:

=SUM(A$1:A1,1)&IF(A2=1,"","-"&SUM(A$1:A2))

觉得上面的内容有用吗?快来点个赞吧!

点赞() 我要打赏

温馨提示 : 本站内容来自会员投稿以及互联网,所有源码及教程均为作者总结编辑,请大家在使用过程中提前做好备份,以免发生无法预知的错误,源码类教程请勿直接用于生产环境!

 可能感兴趣的文章