Excel如何查找每行最后一个值为1的布尔列并提取对应列标题
Excel 365 / 2021 及以上版本
直接使用XLOOKUP的反向搜索特性即可实现需求,公式最简单:=XLOOKUP(1, B2:Z2, $B$1:$Z$1, "无匹配1值", 0, -1)
参数说明:
- 第1个参数
1:要查找的目标值 - 第2个参数
B2:Z2:当前行的布尔值列范围,可根据你的实际表格列数调整 - 第3个参数
$B$1:$Z$1:表头区域,加$做绝对引用,下拉公式时范围不会偏移 - 第4个参数
"无匹配1值":当前行全为0时返回的提示文本,可自定义 - 第5个参数
0:指定精确匹配 - 第6个参数
-1:指定从右到左搜索,找到的第一个1就是该行最后出现的1
旧版Excel(无XLOOKUP函数)
使用LOOKUP的经典数组匹配写法即可:=IFERROR(LOOKUP(2, 1/(B2:Z2=1), $B$1:$Z$1), "无匹配1值")
逻辑说明:
B2:Z2=1会返回一组布尔值,等于1的位置为TRUE,其余为FALSE1/(布尔值)计算后,TRUE的位置结果为1,FALSE的位置会得到错误值- LOOKUP查找大于所有有效值的
2时,会自动忽略错误值,匹配到最后一个1对应的位置,返回对应表头 - 外层加IFERROR处理当前行无1的异常情况
内容的提问来源于stack exchange,提问作者Chipmunk_da
相关产品推荐
相关产品推荐

