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

求助:Excel公式实现INPUT!G19:G45取值至J1604并填充End of table

需求与问题
  • 从INPUT工作表的G19:G45单元格提取非空数据,填充至目标区域J1604及后续单元格
  • 源数据提取完成后,在对应位置填充文本End of the table

当前在J1604使用公式 IF(G19="","",G19) 无法满足需求,尝试以下两个公式均未达成目标:

尝试的公式1:

=LET(lst,FILTER(P$4:P$100,P$4:P$100<>""),num,COUNTA(lst),indx,ROW()/4,
          IF(indx<=num,INDEX(lst,indx,1),IF(indx=num+1,"End of list","")))

尝试的公式2:

=IF(COUNTIF($J$1603:$J1603,"End of List")>0,"",IFERROR(INDEX($G$19:$G$45,SMALL(IF($G$19:$G$45<>
"",ROW($G$19:$G$45),""),ROWS($J$1604:$J$1604))-ROW($J$1603)),"End of List"))

解决方案

根据需求,提供两种适配不同Excel版本的公式:

适配Excel 365/2021(动态数组)

在J1604单元格输入以下公式,回车后会自动溢出填充所有数据及结束文本:

=LET(
    source, INPUT!$G$19:$G$45,
    filtered_data, FILTER(source, source<>""),
    data_count, ROWS(filtered_data),
    fill_seq, SEQUENCE(data_count + 1),
    IF(fill_seq <= data_count, INDEX(filtered_data, fill_seq), "End of the table")
)

适配旧版Excel(需下拉填充)

在J1604单元格输入以下公式,然后下拉填充至足够行数:

=IFERROR(INDEX(INPUT!$G$19:$G$45,SMALL(IF(INPUT!$G$19:$G$45<>"",ROW(INPUT!$G$19:$G$45)-ROW(INPUT!$G$18)),ROWS($J$1604:$J1604))),"End of the table")

公式说明

  • 动态数组版:先过滤源区域的非空数据,生成包含所有数据位置+1个结束位置的序列,前N个位置返回对应数据,最后一个位置显示结束文本
  • 旧版公式:通过SMALL提取源区域非空单元格的相对行号,用INDEX取值;当所有非空数据提取完成后,IFERROR触发并显示结束文本

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 16:17:49