在日常Excel工作中,我们经常遇到这样的需求:根据一个值,既要在A列找,又要在B列找——也就是所谓的“双向查询”。
最终效果如图:

=LET(部门,FILTER(C3:C17,B3:B17=E3,NA()),姓名,FILTER(B3:B17,C3:C17=E3,NA()),IF(ISNA(部门),姓名,部门))E3是你要查询的值。它会自动判断:如果E3在B列存在,就返回对应的A列值;如果E3在A列存在,就返回对应的B列值。如果两边都找不到,则返回#N/A。
从 C 列取值,条件是B列等于D2。如果找不到,返回#N/A。
从B列取值,条件是 C列等于D2。同样,找不到就返回#N/A。
ISNA(...)判断 部门 的第一个值是否为#N/A。核心逻辑:优先按“B列查 C 列”,如果没找到,再按“C 列查B列”。这样就实现了双向查找。

只需将 部门 和姓名改为整行范围即可。例如:
=LET(部门, FILTER(A2:C10, B2:B10=D2, NA()),姓名, FILTER(A2:C10, A2:A10=D2, NA()),IF(ISNA(部门), 姓名, 部门))
这样返回的是匹配到的整行数据。