在Excel表格中,怎样让连续数字自动生成起止数据段?

想要将左边一列的流水号生成右边的流水号段的模式,有没有大神指导一下可以怎么操作啊。要是只有几十、几百的手动制作也就算了,但是现在是几千几万的数据量,这要是真的手动做了估计眼睛就要瞎了……
明明上传了,怎么没看到了……再传一遍

这个不用VBA那就太难了

给一段代码试试吧

Sub AA()
Dim r As Integer, c As Integer, i As Integer
r = 2
c = 3
Cells(2, 3) = Cells(2, 1)
For i = 3 To Cells(65536, 1).End(xlUp).Row - 1
   If c = 4 Then
      c = 3
      r = r + 1
      Cells(r, c) = Cells(i - 1, 1)
      ElseIf Cells(i, 1) > Cells(i - 1, 1) + 1 + 0.001 Then
        c = 4
         Cells(r, c) = Cells(i - 1, 1)
    End If
    Next
Cells(r, 4) = Cells(i, 1)
End Sub

运行前:

运行代码:

运行后:

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-05-17

完全可以用公式解决。需要额外加两列作为辅助。

先看看上图,再看我的公式:

B2公式为:=IFERROR(IF(A2=A1+1,"",A2),A2)

按回车键结束公式。

C2公式为:=IFERROR(IF(A2=A3-1,"",A2),A2)

按回车键结束公式。

D2公式为:=INDEX(B:B,SMALL(IF(B:B<>"",ROW($1:$65536),4^8),ROW(A2)))&""

【注意】:这里要同时按 SHIFT+CTRL+回车键 结束公式。

E2公式为:=INDEX(C:C,SMALL(IF(C:C<>"",ROW($1:$65536),4^8),ROW(A2)))&""

【注意】:这里要同时按 SHIFT+CTRL+回车键 结束公式。

最后,同时选中B2 C2 D2 E2单元格,下拉,一起往下填充四列的公式就行了。

第2个回答  2011-07-18
1>鼠标单击序号1的单元格,输入1。
2>将鼠标箭头移至该单元格右下角的小黑方块上,鼠标变成黑色十字,双击后可以看到序号自动向下复制填充
注:(中间如果没有间隔,就是说如果该列全部是空白单元格,会一直填充到最下边,所以如果中间需要中断可以提前在需要终端的地方随便输入个什么字符)
3>剩下要做的就是在自动填充的最下边一个单元格右下角的自动填充选项上单击鼠标左键选“填充序列”即可。

有些词不达意,也不知道是不是你想要的。。。
第3个回答  2018-05-17

函数复杂

直接用代码完成

Sub 分段()

Dim i As Long, j As Long

Dim iRow As Long, lastRow

iRow = Range("B65536").End(xlUp).Row

Range("D2:D" & iRow) = "=C2-B2+1"

lastRow = 2

For i = 2 To iRow

For j = 1 To Cells(i, "D").Value

Cells(lastRow, "A") = Cells(i, "B") + j - 1

lastRow = lastRow + 1

Next j

Next i

Columns("d") = ""

End Sub

本回答被网友采纳
第4个回答  2018-05-17

分端没有一个标准么???需要有分段标准才可以。

理解你的意思了,在excel里面只能做到这样的情况。我的范例里面一共分为三段。

1-4,6,8-9

相似回答