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

Excel公式:将数据复制到另一工作表并跳过含0的行

提取不含0行的Excel公式方案

一、Excel 365/2021 版本(支持动态数组)

直接用FILTER函数一步搞定,结果自动填充且无空白行:
在新表的A1单元格输入公式:

=FILTER(Sheet1!A:Z, MMULT(--(Sheet1!A:Z<>0), SEQUENCE(COLUMNS(Sheet1!A:Z),,1,0))>0)
  • 把Sheet1!A:Z替换成你实际的原数据范围(比如原数据是A到D列就写Sheet1!A:D)
  • 逻辑说明:先把每行非0单元格转成1、0转成0,再计算每行的数值总和,总和大于0代表该行无0,FILTER会自动提取这些符合条件的行

二、旧版Excel(无动态数组支持)

用INDEX+SMALL+IF组合公式,需按数组公式规则输入:

  1. 在新表A1单元格输入公式,输入完成后按Ctrl+Shift+Enter确认(不要直接回车):
=INDEX(Sheet1!A:A, SMALL(IF(MMULT(--(Sheet1!$A:$Z<>0), TRANSPOSE(COLUMN(Sheet1!$A:$Z)^0))>0, ROW(Sheet1!$A:$Z), ""), ROW(A1)))
  1. 将A1的公式向右拖动到需要的列,再向下拖动到出现#NUM!为止(出现该提示说明已提取完所有符合条件的行)

简化场景:仅判断某一列是否含0

如果只需要检查特定列(比如B列)是否有0,公式可以简化:

  • 动态数组版:=FILTER(Sheet1!A:Z, Sheet1!B:B<>0)
  • 旧版数组公式:=INDEX(Sheet1!A:A, SMALL(IF(Sheet1!$B:$B<>0, ROW(Sheet1!$B:$B), ""), ROW(A1)))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 08:45:11