Excel按顺序创建给定级别的层次结构

时间:2016-02-23 23:32:44

标签: excel excel-vba excel-formula parent hierarchy vba

我有一个唯一身份证的订单及其缩进的级别。它们是有序的,因此当前ID的父级是1比当前缩进级别小1的ID(例如,如果当前缩进级别为3,则父ID将是其上方第一行的id,其中缩进级别3-1 = 2,在这种情况下,UniqueID = 4)。

以下是我的数据示例: enter image description here

我想要一个新列,其中包含当前UniqueID的父UniqueID。

由于

1 个答案:

答案 0 :(得分:0)

我明白了。我编写了一个包含以下内容的Visual Basic脚本:

Function parent(r As Range) As Integer

curVal = r.Value
desiredCol = 2

parentFound = False

counter = 1
'loop through until parent is found or at beginning
Do Until CInt(r.Row) < 2 Or parentFound = True
    If r.Offset(-counter, 0).Value < curVal Then
        parentFound = True
        desiredRow = r.Offset(-counter, 0).Row
    End If
    counter = counter + 1
Loop

parent = r.Offset(-counter + 1, -1).Value

End Function

这将在列中低于它的级别搜索上面的第一个单元格,并在其左侧获取ID的值。