我有一张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填充其父列。任何想法我怎么能实现这一目标?
答案 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
列中的返回值。
结果如下: