Google Sheets中根据姓名匹配对应Bar名称与位置的公式问询
Google Sheets 匹配姓名对应的Bar名称与位置编号最优方案
单个单元格公式(以F2为例)
如果仅需单个单元格生成结果,使用以下公式:
=LET( name, E2, match_range, B:D, found_row, XLOOKUP(name, match_range, A:A,, 0, 2), found_col, MATCH(name, INDIRECT("B"&found_row&":D"&found_row), 0), bar_val, A$found_row, pos_val, INDEX(match_range, found_row, found_col+1), bar_val & "、位置" & pos_val )
批量数组公式(自动填充所有行)
要一次性处理E列所有姓名,无需手动下拉填充,用数组公式实现:
=ARRAYFORMULA( IF(E2:E="", "", LET( names, E2:E, match_range, B:D, found_rows, XLOOKUP(names, match_range, A:A,, 0, 2), found_cols, MATCH(names, BYROW(found_rows, LAMBDA(r, INDIRECT("B"&r&":D"&r))), 0), bar_vals, INDEX(A:A, found_rows), pos_vals, INDEX(match_range, found_rows, found_cols+1), bar_vals & "、位置" & pos_vals ) ) )
公式说明
XLOOKUP:在B-D列范围内精确匹配E列姓名,返回对应A列Bar名称的行号,按列搜索确保覆盖所有可能的匹配位置MATCH+INDIRECT:定位姓名在对应行的具体列位置INDEX:提取姓名右侧单元格的位置编号值LET:定义变量简化公式结构,提升可读性与维护效率ARRAYFORMULA:批量处理E列所有非空单元格,自动生成对应结果
注意事项
- 若E列姓名未在B-D列中找到,对应单元格将返回空值,避免错误提示
- 需确保Google Sheets支持
XLOOKUP、LET等函数(2020年及以后版本均兼容)
内容的提问来源于stack exchange,提问作者difab
相关产品推荐
相关产品推荐

