You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel公式求助:查找日期返回列标题时出现#REF!错误

问题分析与解决方法

原公式逻辑拆解

你之前用的公式:

=INDEX($C$9:$Q$9,, SUMPRODUCT(($C$10:$Q$20=C2)* (COLUMN($C$9:$Q$9)-COLUMN($B$2))))

各部分作用:

  • ($C$10:$Q$20=C2):生成布尔数组,找到区域内等于C2日期的单元格,匹配位置为1,其余为0
  • COLUMN($C$9:$Q$9):获取C到Q列的绝对列号(3到17)
  • COLUMN($B$2):获取B列的绝对列号(2),用它做基准,计算出C9:Q9区域内的相对列号(3-2=1,17-2=15,对应区域的第1到15列)
  • SUMPRODUCT将匹配位置的相对列号相加,得到目标日期所在的相对列位置,INDEX据此返回C9:Q9中对应列的标题

错误原因

你把公式改成C4时,错误地将COLUMN($B$2)换成了COLUMN($B$4)——虽然B4的列号还是2,但如果实际操作中误选了其他列,或者当C4的日期匹配位置计算后,得到的相对列号超出了C9:Q9的列数(C到Q共15列),就会导致INDEX的列参数无效,返回#REF!。本质是你误解了这个基准列号的作用:它是固定用来计算C9:Q9区域相对列位置的,不能随查找单元格(C2/C4)改变。

修正后的公式

方法1:固定基准列号

沿用你原来的SUMPRODUCT写法,把基准列号固定为B列(不管查找的是C2还是C4):

=INDEX($C$9:$Q$9,, SUMPRODUCT(($C$10:$Q$20=C4)*(COLUMN($C$9:$Q$9)-COLUMN($B$1))))

方法2:更直观的列号计算

直接计算匹配单元格的绝对列号,再转换成C9:Q9内的相对列号,逻辑更清晰:

=INDEX($C$9:$Q$9,,SUMPRODUCT(($C$10:$Q$20=C4)*COLUMN($C$10:$Q$20))-COLUMN($C$9)+1)

方法3:用XLOOKUP简化(适用于Excel 365/2021及以上版本)

如果你的Excel支持XLOOKUP,直接用这个更简洁的公式:

=XLOOKUP(C4,$C$10:$Q$20,$C$9:$Q$9,"未找到",0)

内容的提问来源于stack exchange,提问作者JenMcClary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 17:07:09