Excel 中的从属分层编号

问题描述 投票:0回答:1

我是 Stack Overflow 的新手,所以如果我做了一些愚蠢的事情,请原谅。我有一个关于 Excel 的问题,我想要一列(假设 A)根据另一列(假设 B)中的数字进行分层编号。 B 阐明了行的级别。 F.e.如果级别为 3,则编号格式应为“X.X.X”。我添加了一张图像作为我想象的示例。

Example Image

我尝试自己并在人工智能的帮助下开发一个合适的公式,但似乎没有任何效果。有人可以解决我的问题吗?

我正在尝试为我的 Excel 工作表开发公式寻求帮助,并希望人们给我有关函数的提示,甚至提供一个完整的公式。

excel hierarchy
1个回答
0
投票

我已经准备好了UDF函数,可以用作表格中的公式。
您应该将代码放在标准模块中(

Alt
+
F11
打开VBA编辑器,然后插入模块):

Function Numbers(list)
    ' list - 1-D array or range of cells
    list = list
    If UBound(list) = 1 Then list = Application.Transpose(list)
    Dim m As Long
    m = Application.Max(list)
    Dim ind, ind1
    ReDim ind(1 To m) As String
    Dim i As Long, k As Long, c As Long
    Dim res
    ReDim res(1 To UBound(list), 1 To 1) As String
    For i = 1 To UBound(list)
        k = list(i, 1)
        For c = 1 To k - 1
            If ind(c) = "" Then ind(c) = 1
        Next c
        If ind(k) = "" Then ind(k) = 1 Else _
        ind(k) = ind(k) + 1
        For c = k + 1 To m
            ind(c) = ""
        Next c
        ind1 = ind
        ReDim Preserve ind1(1 To k)
        res(i, 1) = Join(ind1, ".")
    Next i
    Numbers = res
End Function

在工作表中将其用作公式:

=Numbers(B1:B19)

在新的 Excel (2021, 365) 中,它是一个动态公式,可以一次给出整个数组。

© www.soinside.com 2019 - 2024. All rights reserved.