如何在Excel中构造查找循环(不使用VBA)?

如何在Excel中构造查找循环(不使用VBA)?,excel,excel-formula,Excel,Excel Formula,我在excel表格中有数据,它遵循以下模式: 正如你所看到的,每个员工都有一个经理,他自己就是一个员工。有些员工向另一个员工汇报(例如H向D汇报,B向B汇报,E向Z汇报) 我要寻找的是一种方法,我可以找到在给定人员下的所有员工。例如,如果我用E提供公式,那么它应该找到向E(a、B和I)报告的员工,向a/B/I(C、D)报告的员工,向C/D(H)报告的员工 我对自己的excel技能不太自信,因为我只使用了基本的VLOOKUP,但没有找到在查找中进行此类查找的方法。对于Microsoft365,我

我在excel表格中有数据,它遵循以下模式:

正如你所看到的,每个员工都有一个经理,他自己就是一个员工。有些员工向另一个员工汇报(例如H向D汇报,B向B汇报,E向Z汇报)

我要寻找的是一种方法,我可以找到在给定人员下的所有员工。例如,如果我用E提供公式,那么它应该找到向E(a、B和I)报告的员工,向a/B/I(C、D)报告的员工,向C/D(H)报告的员工


我对自己的excel技能不太自信,因为我只使用了基本的VLOOKUP,但没有找到在查找中进行此类查找的方法。

对于Microsoft365,我使用了以下方法:

D2
中的公式:

=TRANSPOSE(FILTER(A$2:A$12,IFERROR(MMULT(--(B$2:B$12=D1#),SEQUENCE(COUNTA(D1#),,,0)),B$2:B$12=D1),""))
向下拖动,直到找到空单元格。

在E2中,数组公式(Ctrl+Shift+Enter)从右侧复制到G2:

=TEXTJOIN(“,”,IF(ISNUMBER(搜索($B2:$B12,D2)),$A2:$A12,”)

对于Excel2013,您可以使用
AGGREGATE()
函数。根据下面的屏幕截图,使用公式

D2=IFERROR(INDEX($A$2:$A$12,AGGREGATE(15,6,ROW($1:$12)/($B$2:$B$12=$D$1),ROW(1:1))),"")
E2=IFERROR(INDEX($A$2:$A$12,AGGREGATE(15,6,ROW($1:$12)/($B$2:$B$12=D2),ROW($1:$1))),"")
根据需要向下和横向复制。如果您想在同一单元格中显示逗号分隔的值,则需要使用
TEXTJOIN()
自定义函数,用于
Excel2013
,因为TEXTJOIN在
Excel2013
上不可用。下面是@Scott Craner的
TEXTJOIN()
链接


H向D报告。为什么它在C下?它不在
C
下。只是那些向他们上面的任何人报告的人@jayachandrant感谢你的回答。向上投票。如果这个解决方案适用于Excel 2013,我会接受。@Jayachandran,它不会。这是一个Microsoft365解决方案。我建议添加你的版本将Excel添加到您的标记以指定此项。