如何根据查找值返回Excel数组中的行标题与列标题?
二维表格中查找值对应行/列标题的解决方法
为什么你的公式报错
=XLOOKUP("S1",B2:K11,B1:K1)返回#VALUE!:XLOOKUP仅支持在单行或单列中执行查找,直接传入二维数据区域B2:K11会触发类型不匹配错误。=MATCH("S2",B2:K11)返回#N/A:MATCH同样只识别单行/单列的查找范围,未明确查找维度(行/列)时,无法在二维区域定位目标值,因此返回未找到标识。
正确公式用法
结合你提供的表格结构(列标题为B1:K1、行标题为A2:A11、数据区域为B2:K11),给出以下解决方案:
1. 查找指定值的列标题(X坐标)
已知目标值所在行的情况(例如S1在第2行)
锁定目标行执行查找,XLOOKUP可正常工作:
=XLOOKUP("S1", B2:K2, B1:K1)
未知目标值所在行的通用情况
用SUMPRODUCT定位列号,再通过INDEX提取对应列标题:
=INDEX(B1:K1,, SUMPRODUCT((B2:K11="S1")*COLUMN(B2:K11)) - COLUMN(B1) + 1)
2. 查找指定值的行标题(Y坐标)
已知目标值所在列的情况(例如S2在第3列即C列)
锁定目标列执行查找:
=XLOOKUP("S2", C2:C11, A2:A11)
未知目标值所在列的通用情况
用SUMPRODUCT定位行号,再提取对应行标题:
=INDEX(A2:A11, SUMPRODUCT((B2:K11="S2")*ROW(B2:K11)) - ROW(A2) + 1)
3. 一次性返回X+Y坐标组合(例如S3)
用TEXTJOIN将列标题与行标题拼接输出:
=TEXTJOIN(", ",, INDEX(B1:K1,, SUMPRODUCT((B2:K11="S3")*COLUMN(B2:K11))-COLUMN(B1)+1), INDEX(A2:A11, SUMPRODUCT((B2:K11="S3")*ROW(B2:K11))-ROW(A2)+1))
内容的提问来源于stack exchange,提问作者Chris Houdy
相关产品推荐
相关产品推荐

