我在 Excel 2010 中有一个包含两列的大表。A 列是用户,B 列是邀请用户的人。用户名是字母数字的,包括一些只是数字的。最早的用户没有受邀者。
User | Parent
-------------
AAA |
BBB |
CCC | AAA
DDD | BBB
EEE | DDD
FFF | DDD
GGG | FFF
HHH |
III | GGG
我想做的是有一个公式可以让我去祖父母(和曾祖父母以及其他地方),所以我试图找到一个基于公式的解决方案,它在适当的地方使用混合的相对和绝对列.
上面的链最多可以达到四个,但我有理由相信我的数据集最多不超过 20 层。我想找到一个公式或公式组合让我做到这一点(并且,正如我所说,超越):
USER | PARENT | P2 | P3 | P4 | ...
AAA | |
BBB | |
CCC | AAA |
DDD | BBB |
EEE | DDD | BBB |
FFF | DDD | BBB |
GGG | FFF | DDD | BBB
HHH |
III | GGG | FFF | DDD | BBB
...
我尝试了各种结合 VLOOKUP、MATCH 和 INDEX 命令的方法,有和没有用户 ID 号的关键行(因为当面对“0”是一个有效的用户名这一事实时,其中一些没有数字列的解决方案崩溃了,这使得错误捕获更加困难)。我可以很可靠地到达 P2,但如果它没有崩溃,我似乎永远无法到达 P3。顺便说一句,考虑到数据接近 400,000 行,我尝试过的公式非常占用 CPU,但计算时间并不太关心我。我的蛮力方法不起作用。关于 stackoverflow 有几个有点相似的问题,但他们要求的东西略有不同,我无法适应其中的任何一个。
如果这可以通过标准函数完成,那将比 VBA(我不熟悉)更可取,即使计算时间更长,因为它会增加我在明年需要重新访问这个问题时维护它的能力.