如何在Google Sheets中查找含指定内容的最后一列标识?
在Google Sheets中获取包含指定内容的最后一列标识
核心解决方案
根据你的需求(查找指定内容在目标行最后出现的列对应的ID/列索引/列字母),以下是几种实用公式:
1. 返回对应运行ID(表头值)
这是最贴合你单元测试跟踪场景的公式,直接返回最后一次出现目标内容的列的表头ID:
=IFERROR(LOOKUP(2,1/(B2:Z2=F1),B$1:Z$1),0)
- 替换
B2:Z2为你的目标数据行范围 - 替换
F1为存放要查找内容的单元格 - 替换
B$1:Z$1为你的运行ID表头行范围 - 无匹配时返回
0,符合你示例中输入Z返回ID0的需求
2. 返回列索引(数字)
如果需要获取列的数字索引(比如B列对应2):
=IFERROR(XLOOKUP(F1,B2:Z2,COLUMN(B2:Z2),,0,-1),0)
XLOOKUP的最后一个参数-1表示从右往左反向查找,直接定位最后一个匹配项- 无匹配时返回
0
3. 返回列字母(如B、C)
若需要列字母标识:
=IFERROR(SUBSTITUTE(ADDRESS(1,XLOOKUP(F1,B2:Z2,COLUMN(B2:Z2),,0,-1),4),"1",""),"0")
ADDRESS生成对应列的单元格地址,SUBSTITUTE去掉行号得到纯列字母- 无匹配时返回
0
公式原理说明
以LOOKUP版本为例:
B2:Z2=F1:生成布尔数组,匹配目标内容的位置为TRUE,其余为FALSE1/(...):将TRUE转为1,FALSE转为#DIV/0!错误值LOOKUP(2,1/(...),B$1:Z$1):LOOKUP会忽略错误值,查找大于所有1的2时,会定位到最后一个1的位置,返回对应表头ID
适配你的示例场景
假设你的表格结构:
- A列:测试用例(A、B、Q、T、Z)
- B1:D1:运行ID(ID0、ID1、ID2)
- B2:D2:测试用例A的结果(空、A、空)
- B3:D3:测试用例B的结果(B、B、B)
- B4:D4:测试用例Z的结果(Z、空、空)
当你在F1输入A时,公式返回ID1;输入B时返回ID2;输入Z时返回ID0,完全符合需求。
实用场景扩展
这个公式可以直接应用到你的单元测试失败跟踪:
- 每行对应一个测试用例
- 每列对应一次测试运行(表头为运行ID)
- 单元格标记失败类型(如A/B/Q/T/Z)
- 通过公式快速定位某失败类型最后出现的运行ID,若该ID早于最新运行ID,说明该测试已修复
内容的提问来源于stack exchange,提问作者kiml42
相关产品推荐
相关产品推荐

