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

如何避免#SPILL!错误,按条件从Sheet1提取内容到Sheet3

解决Excel动态数组SPILL错误并按条件提取内容
  • 错误原因:你用的原公式里,条件范围Sheet1!$D2:$D40是39行的数组,但返回值只引用了单个单元格Sheet1!$F2,数组运算时维度不匹配,直接触发#SPILL!错误。

  • 动态数组版本方案(Excel 365/2021及以上):
    直接用FILTER函数就能实现需求,它会自动筛选符合条件的内容并按顺序溢出填充,无匹配项时保持空白。在Sheet3的B1单元格输入:

=FILTER(Sheet1!$F$2:$F$40, Sheet1!$D$2:$D$40="COMPLETE", "")

这个公式逻辑很直接:第一个参数指定要提取的F列数据范围,第二个参数设置筛选条件(D列单元格等于"COMPLETE"),第三个参数定义没有符合条件的数据时返回空值。满足条件的内容会依次填入Sheet3的B1、B2……对应位置,未满足条件的区域保持空白。

  • 旧版Excel兼容方案(无动态数组支持):
    如果你的Excel版本不支持FILTER,可以用INDEX+SMALL组合的数组公式(输入完成后需按Ctrl+Shift+Enter确认),在Sheet3的B1单元格输入:
=IFERROR(INDEX(Sheet1!$F$2:$F$40, SMALL(IF(Sheet1!$D$2:$D$40="COMPLETE", ROW(Sheet1!$D$2:$D$40)-ROW(Sheet1!$D$2)+1), ROW(A1))), "")

输入后下拉填充到需要的行数(比如39行)即可。逻辑是:先用IF函数标记出D列符合条件的行号,再用SMALL按顺序提取这些行号,最后通过INDEX取出对应F列的内容;IFERROR用来处理没有更多匹配项的情况,返回空值,下拉时ROW(A1)会自动递增,依次提取下一个符合条件的内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 04:27:13