暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

分段序号的填充

施施的EXCEL后备军 2021-08-27
560
如图1所示,我们经常需要这分段的整体表中填充序列,一般这种填充需要每个分段从1开始。可以参考以下办法较好地处理此事。

(图1)

【第一种情况】如果B列不是用格式刷合并的数据(即:合并单元格区域只有最上方一个值)

可以在C2单元格中中输入如下公示:

=IF(B2<>"",1,C1+1)

然后填充下拉就可以了。如图2所示。

(图2)
【第二种情况】B列数据是通过格式化实现合并的(即:每个合并单元格区域内的所有单元格有数据)。如果还用第一种办法,则会出现如图3的情况。

(图3)

所以,这种情况就要另谋出路。

我是用VBA来处理的。

在代码窗口复制如下代码,点击运行就可以得到结果。

Sub 分段序号()

    Dim i As Integer, j As Integer

    i = 3

    j = 3

    Cells(2, 3) = 1

    Do Until Cells(i, 2) = ""

        If Cells(i, 2) <> Cells(i + 1, 2)And Cells(i, 2) <> Cells(i - 1, 2) Then

            Cells(i, 3) = 1

        Else

            If Cells(i + 1, 2) <>Cells(i, 2) And Cells(i, 2) = Cells(i - 1, 2) Then

               Cells(i, 3) = Cells(i - 1, 3) +1

        Else

                 If Cells(i, 2) <>Cells(i - 1, 2) And Cells(i, 2) = Cells(i + 1, 2) Then

                    Cells(i, 3) = 1

                Else

                    Cells(i, 3) = Cells(i - 1,3) + 1

                End If

            End If

        End If

        i = i + 1

    Loop

End Sub

如图4所示。


(图4)

【备注】代码中的J是我做测试用的。后面忘记删除了,各位海涵,我经常初心大意而且有点懒的,哈哈。

Tips1:不要看代码复杂,其实内部逻辑很简单,即判断(B列所在行)与前后行均不一致的行写为1,与前一行不一致且与后一行一致的行写为1,与前一行一致的行在上一行的基础上加数字1。

Tips2:

可能还有其他更简便的方法我没有注意到,如果有知道的话,麻烦告知下,因为我觉得用VBA这个办法还是有点繁琐(虽然内部逻辑结构简单)。

Tips3:

如果文章中有错误的地方,麻烦您多多指正。

Tips4:

万丈高楼平地起!



文章转载自施施的EXCEL后备军,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论