Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel父列表链_Excel - Fatal编程技术网

Excel父列表链

Excel父列表链,excel,Excel,我在Excel 2010中有一个包含两列的大表格。A列是用户,B列是邀请用户的人。用户名是字母数字的,包括一些仅仅是数字的。最早的用户没有被邀请者 User | Parent ------------- AAA | BBB | CCC | AAA DDD | BBB EEE | DDD FFF | DDD GGG | FFF HHH | III | GGG 我想做的是有一个公式,可以让我找到祖父母(和曾祖父母,以及其他),所以我试图找到一个基于公式的解决方案,在适当的情况下使

我在Excel 2010中有一个包含两列的大表格。A列是用户,B列是邀请用户的人。用户名是字母数字的,包括一些仅仅是数字的。最早的用户没有被邀请者

User | Parent
-------------
AAA  |
BBB  |
CCC  | AAA
DDD  | BBB
EEE  | DDD
FFF  | DDD
GGG  | FFF
HHH  |
III  | GGG
我想做的是有一个公式,可以让我找到祖父母(和曾祖父母,以及其他),所以我试图找到一个基于公式的解决方案,在适当的情况下使用混合相对列和绝对列

上面的链最多可以达到4级,但我有理由相信我的数据集最多只能达到20级。我想找到一个公式或公式的组合,使我达到这个(以及,正如我所说的,超越):

我尝试了各种方法,将VLOOKUP、MATCH和INDEX命令组合在一起,使用或不使用用户ID号的关键行(因为一些没有数字列的解决方案在遇到“0”是有效用户名的事实时出现故障,这使得错误捕获更加困难)。我可以非常可靠地到达P2,但如果P3不发生故障,我似乎永远无法到达P3。顺便说一句,我尝试过的公式非常占用CPU,因为数据接近400000行,但计算时间与我无关。我的暴力手段不管用。在stackoverflow上有几个类似的问题,但它们要求的东西略有不同,我无法对其中任何一个进行调整


如果这可以通过标准函数来实现,那将比VBA(我不熟悉)更好,即使计算时间更长,因为这将提高我在明年需要重新讨论这个问题时维护它的能力。

尝试以下公式:
=IFERROR(VLOOKUP(C5,UserParent,2,FALSE)和“”)
,将
UserParent
替换为绝对引用的列对(例如
$B$5:$C$30
)或适当的命名范围。将其向下复制到您的祖父母列中

我打赌这是您以前尝试过的方法,但最终在输出中会出现一堆零。这个公式中最有趣的部分是
&“
。当
VLOOKUP
执行其工作时,这将强制父列中的空单元格被视为空字符串,而不是零值单元格。这将删除所有影响输出的零


我能够使用一组随机字母数字,但没有样本数据,这是我能做的最好的了。

正如您所指出的,0作为有效用户名的存在是一个真正的问题-因为它也会通过
VLOOKUP()
作为值返回(相当于通过
INDEX(,MATCH())
)没有父母的名字


另一种策略是使用一些不出现在用户列或父列中的伪值,如-99999,来表示缺少的父列,并将其添加到用户/父表的父列中,以代替任何空单元格。另外,在用户列和父列中向该表添加一行,并使用相同的伪值。现在,如果0真的是您试图查找其父单元格的父单元格,那么您将只得到VLOOKUP返回的零。当列中的所有值都等于虚拟值时,您将检测到没有更多“级别”的情况。

这工作正常。它不能正确处理一些奇怪的用户名(那些仅由问号字符或数字组成的用户名),但几分钟的小规模清理也不能解决任何问题。考虑到这里的数据量,这是完全合理的,比我得到的有很大的改进。谢谢!
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
...