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

数组公式仅返回第二条匹配行数据,无法获取首行数据问题排查

问题分析与公式修正

问题根源

你的数组公式跳过首条匹配数据,核心原因有两点:

  1. 匹配范围包含表头行:原公式用'Paste-Data'!$B$1:$B$4000作为匹配范围,包含了源表第1行的表头,当ROW函数返回行号时,首条有效数据的行号是2,但ROWS($H$1:$H2)在B3单元格时返回2,导致SMALL直接取第二个匹配项,跳过了第一个。
  2. 计数范围逻辑错误:ROWS($H$1:$H2)的引用和当前目标单元格(B3)不对应,应该从当前行开始计数,确保第一次提取时取第1个匹配结果。

修正后的公式

目标表B3(提取源表H列QTY数据)

输入后按Ctrl+Shift+Enter确认(Excel 365/2021可直接回车):

=IFERROR(INDEX('Paste-Data'!$H:$H,SMALL(IF('Paste-Data'!$B$2:$B$4000=$A$1,ROW('Paste-Data'!$B$2:$B$4000)),ROWS($B$3:$B3))),"")
  • 调整匹配范围为'Paste-Data'!$B$2:$B$4000,跳过源表第1行表头,避免无效匹配
  • 直接引用源表H列,无需计算列索引,减少出错概率
  • 用ROWS($B$3:$B3)作为计数依据,在B3时返回1,B4时返回2,依次递增,确保按顺序提取所有匹配项

目标表E3(提取源表G列DESC数据)

同样按Ctrl+Shift+Enter确认(Excel 365/2021可直接回车):

=IFERROR(INDEX('Paste-Data'!$G:$G,SMALL(IF('Paste-Data'!$B$2:$B$4000=$A$1,ROW('Paste-Data'!$B$2:$B$4000)),ROWS($E$3:$E3))),"")
  • 逻辑和B3公式一致,仅调整为引用源表G列,计数范围对应E列当前行

Excel 365/2021版本简化方案

如果使用支持动态数组的Excel版本,直接用FILTER函数更高效,无需下拉填充,公式会自动溢出所有匹配结果:

  • B3单元格:
=IFERROR(FILTER('Paste-Data'!$H:$H,'Paste-Data'!$B$2:$B$4000=$A$1),"")
  • E3单元格:
=IFERROR(FILTER('Paste-Data'!$G:$G,'Paste-Data'!$B$2:$B$4000=$A$1),"")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 08:03:18