Excel 2010:如何反向查找当前行上方含逗号的单元格
Excel 2010 反向查找A列首个含逗号单元格的解决方案
针对你需要从当前行向上查找A列中第一个(离当前行最近的)包含逗号的单元格需求,以下是适配Excel 2010的可行方案:
核心公式(直接返回目标单元格内容)
在O列对应单元格输入以下公式,回车后下拉填充即可:
=LOOKUP(2,1/(ISNUMBER(SEARCH(",",$A$1:A2))),$A$1:A2)
注:公式中的A2需替换为当前行的A列单元格,比如在O3输入时改为$A$1:A3,下拉时Excel会自动调整行号
公式拆解
SEARCH(",",$A$1:A2):检查A1到当前行的每个单元格是否包含逗号,返回匹配位置(含逗号)或错误值(不含)ISNUMBER(...):将含逗号的结果转为TRUE,不含的转为FALSE1/(...):将TRUE转为1,FALSE转为#DIV/0!错误值(LOOKUP会自动忽略错误)LOOKUP(2,1/(...),$A$1:A2):LOOKUP在所有1中查找大于它们的2,最终返回最后一个1对应的单元格——也就是当前行往上最近的含逗号单元格
提取日期(如果需要)
如果A列含逗号的单元格中,日期在逗号左侧,可使用以下公式直接提取日期部分:
=LEFT(LOOKUP(2,1/(ISNUMBER(SEARCH(",",$A$1:A2))),$A$1:A2),FIND(",",LOOKUP(2,1/(ISNUMBER(SEARCH(",",$A$1:A2))),$A$1:A2))-1)
替代方案(数组公式)
若偏好使用INDEX+MATCH组合,可输入以下数组公式,输入完成后需按Ctrl+Shift+Enter确认(而非单独回车):
=INDEX($A$1:A2,MAX(IF(ISNUMBER(SEARCH(",",$A$1:A2)),ROW($A$1:A2),0)))
此公式通过MAX获取最大的匹配行号(即最近的含逗号行),再用INDEX返回对应单元格内容。
内容的提问来源于stack exchange,提问作者errr
相关产品推荐
相关产品推荐

