确定行excel的父级

时间:2014-03-05 21:05:28

标签: excel vba excel-2007

我有一张excel表格,其格式如下

Name | Data | Level | parent |
------------|-------|--------|
AAA  | XXX  | 1     | root(?)| 
BBB  | YYY  | 2     | AAA(?) |
CCC  | ZZZ  | 3     | BBB(?) |
DDD  | XYZ  | 4     | CCC(?) |
EEE  | YZX  | 3     | BBB(?) |
FFF  | ZXY  | 4     | EEE(?) |
GGG  | ZXR  | 4     | EEE(?) |

我要做的是获取每一行的父级名称。例如我对于CCC我应该能够用BBB填充其父列。任何想法我怎么能实现这一目标?

1 个答案:

答案 0 :(得分:1)

D2输入

=IF(C2=1,"Root",LOOKUP(2,1/($C$2:$C2=C2-1),$A$2:$A2))

然后根据需要向下拖动?这至少适用于你的样品。

说明如下:

测试列Level = 1中此行的值是否正确,返回“Root”。

测试列Level = 1中此行的值,如果不是,则执行如下操作:

从当前行,级别获取级别为1的所有行的数组。 ($ C $ 2:$ C2 = C2-1)

将该数组划分为1,以便在每个不高一级的位置上获得错误。

在错误数组和1中查找2。 (这会返回最底部的1(最后一行高一级))

此位置的Name列中的返回值。

结果如下:

enter image description here