如何在Excel中生成数字大纲

我正在运行Excel 2013和Windows 10.有一个类似于下面的图1的结构:

树

在这个答案中 ,由于gserg ,我可以跟踪从一行到另一行的深度变化,如下面的图2所示:

与深度指示器的树

如何使用该信息或类似的计算来生成数字轮廓,如下面图3的J列所示:

深度指示器和手动数字轮廓的树

解决scheme需要在深度为27个级别且行数为1,000以上的情况下工作

这是基于7列的例子,但是通过将数组大小和列variables更改为27(或者您拥有的数量很多),很容易进行扩展。 让我知道,如果它是过度简化 – 我意识到你的样本数据可能就是这样,你的实际数据比这更复杂。

Sub Outline(ws As Worksheet, columns As Integer, offset As Integer) Dim row, lastRow As Long Dim index, col As Integer Dim level As String Dim values(1 To 255) As Integer values(1) = 0 lastRow = ws.UsedRange.Rows.Count For row = 1 To lastRow For index = 1 To columns If ws.Cells(row, index).Value <> "" Then values(index) = values(index) + 1 level = values(1) If index > 1 Then For col = 2 To index level = level & "." & values(col) Next col End If ws.Cells(row, columns + offset).NumberFormat = "@" ws.Cells(row, columns + offset).Value = level For col = index + 1 To columns values(col) = 0 Next col Exit For End If Next index Next row End Sub 

在这里输入图像说明