Note: The other languages of the website are Google-translated. Back to English

如何在Excel中查找第一个非零值并返回相应的列标题?

假设您有一个数据范围,现在,您想返回出现第一个非零值的那一行的列标题,如下面的截图所示,本文中,我将为您介绍一个有用的公式来处理此任务在Excel中。

doc查找第一个非零1

查找第一个非零值,并使用公式返回相应的列标题


箭头蓝色右气泡 查找第一个非零值,并使用公式返回相应的列标题

要返回行中第一个非零值的列标题,请使用以下公式,请这样做:

输入以下公式: =INDEX($B$1:$I$1,MATCH(TRUE,INDEX(B2:I2<>0,),0)) 放入要查找结果的空白单元格中, K2,例如,然后将填充手柄向下拖动到要应用此公式的单元格,并且将返回第一个非零值的所有相应列标题,如以下屏幕截图所示:

doc查找第一个非零2

备注:在以上公式中, B1:I1 是您要返回的列标题, B2:I2 是您要查找第一个非零值的行数据。


最佳办公效率工具

Kutools for Excel解决了您的大多数问题,并使您的生产率提高了80%

  • 重用: 快速插入 复杂的公式,图表 以及您以前使用过的任何东西; 加密单元 带密码 创建邮件列表 并发送电子邮件...
  • 超级公式栏 (轻松编辑多行文本和公式); 阅读版式 (轻松读取和编辑大量单元格); 粘贴到过滤范围...
  • 合并单元格/行/列 不会丢失数据; 拆分单元格内容; 合并重复的行/列...防止细胞重复; 比较范围...
  • 选择重复或唯一 行; 选择空白行 (所有单元格都是空的); 超级查找和模糊查找 在许多工作簿中; 随机选择...
  • 确切的副本 多个单元格,无需更改公式参考; 自动创建参考 到多张纸; 插入项目符号,复选框等...
  • 提取文字,添加文本,按位置删除, 删除空间; 创建和打印分页小计; 在单元格内容和注释之间转换...
  • 超级滤镜 (将过滤方案保存并应用于其他工作表); 高级排序 按月/周/日,频率及更多; 特殊过滤器 用粗体,斜体...
  • 结合工作簿和工作表; 根据关键列合并表; 将数据分割成多个工作表; 批量转换xls,xlsx和PDF...
  • 超过300种强大功能. 支持 Office / Excel 2007-2021 和 365。支持所有语言。 在您的企业或组织中轻松部署。 完整功能 30 天免费试用。 60 天退款保证。
kte选项卡201905

Office选项卡为Office带来了选项卡式界面,使您的工作更加轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高50%,并减少数百次鼠标单击!
officetab底部
按评论排序
注释 (13)
还没有评分。 成为第一位评论!
该评论由网站上的主持人最小化
se volessi "l'ultimo" Valore Diverso Da Zero E Restituire L'intestazione Della Colonna Corrispondente Con La Formula?
该评论由网站上的主持人最小化
如何返回第二个和第三个等非零值? 你的公式很棒,但我正在尝试从文本中搜索更多关键字,所以有时它们在同一个句子中是 2 或 3
该评论由网站上的主持人最小化
你能解释一下这个公式是如何工作的吗
该评论由网站上的主持人最小化
您好 Priya,我很高兴为您提供帮助。 我将公式 = INDEX($B$1:$I$1,MATCH(TRUE,INDEX(B2:I2<>0,),0)) 分成 3 个部分,一步一步给你解释公式。
首先,让我们看看最里面的公式 =INDEX(B2:I2<>0,)。 此公式返回一个 TRUE 和 FALSE 的数组,范围 B2:I2 的值是否等于 0。请看截图 1,公式 =INDEX(B2:I2<>0,) 返回 {FALSE,FALSE,FALSE,FALSE,真,真,真,真}。
其次,=MATCH(TRUE,INDEX(B2:I2<>0,),0) =MATCH(TRUE, {FALSE,FALSE,FALSE,FALSE,TRUE,TRUE,TRUE,TRUE}, 0)。 它返回第一个值“TRUE”的位置,而公式中的 0 表示完全匹配。 我们可以看到第一个值“TRUE”出现在数组的第 5 个位置。 然后第二个公式返回 5。见截图 2。
最后,=INDEX(B1:I1,MATCH(TRUE,INDEX(B2:I2<>0,),0))=INDEX(B1:I1,5)。 它返回数组 B5:I1 的第 1 个值。 我们可以在屏幕截图中看到该值为“May”。 所以最终公式返回“May”。 
PS:要将填充柄向下拖动公式以获得其余结果,我们必须使范围 B1:I1 为绝对值。 所以我们将 $ 添加到范围 B1:I1 以保持绝对值。 
希望我的解释能解决你的疑惑。 祝你今天过得愉快。
真诚的,曼迪
查看附件 (3 / 5)
该评论由网站上的主持人最小化
嗨曼迪周,

谢谢你的解释!
我有一个后续问题。
如果您也必须查找年份,公式会发生什么变化?
因此,在上面的示例中,我们假设 J 列是“年份”,并且在单元格 J2 中写入“2015”。
在单元格 K2 中,我需要 L2 中年份的第一个非零值的列标题(2015 年,因此我需要在单元格 K2 中找到“Jun”)。

在此先感谢您的帮助!
杰森
该评论由网站上的主持人最小化
您如何查找第二个、第三个和第四个非零值?
该评论由网站上的主持人最小化
你好,罗伯特,
要查找第二个、第三个或第四个非零值并返回它们的列,请应用以下公式:(粘贴公式后,请按 Ctr + Shift + 回车 键在一起。)
=INDEX($B$1:$I$1,SMALL(IF(B2:I2<>0, COLUMN(B2:I2)-COLUMN(A2)),2))


备注:要提取第三或第四个结果,只需根据需要将数字 2 更改为 3,4 即可。

请试一试,希望对您有所帮助!
该评论由网站上的主持人最小化
如果您需要数组中的最后一个非零值怎么办?

PS这真的很有帮助,非常感谢!
该评论由网站上的主持人最小化
你好,阿里,
要根据最后一个非零值获取列标题,请应用以下公式,请参见屏幕截图:
=INDEX($B$1:$H$1,MAX((COLUMN(B2:H2)-MIN(COLUMN(B2:H2))+1)*(B2:H2<>0)))
请记住按 按Ctrl + Shift + Enter组合 关键在一起。
https://www.extendoffice.com/images/stories/comments/comment-skyyang/doc-last-non-zero.png
请尝试,希望对您有所帮助!
该评论由网站上的主持人最小化
公式超级有用,帮我解决了问题! 谢谢!!! 您是否有机会帮助解释它是如何工作的?
该评论由网站上的主持人最小化
E como faço pra procurar o primeiro valor diferente de zero da esquerda pra direita?
该评论由网站上的主持人最小化
你好,马修斯
如果要返回一行中的第一个非零值,请应用以下公式:
=INDEX(B2:F2,MATCH(TRUE,INDEX(B2:F2<>0,),0))
请试一试,希望对您有所帮助!
该评论由网站上的主持人最小化
如果包含零的单元格中有公式,有谁知道您会怎么做? 当我使用这个公式时,不管第一列标题是否为零,我都会得到任何结果。
这里还没有评论
留下你的意见
以访客身份发帖
×
评价此帖子:
0   产品特性
建议地点

关注我们

版权所有 © 2009 - extendoffice.com。 | 版权所有。 供电 ExtendOffice。 | 网站地图
Microsoft和Office徽标是Microsoft Corporation在美国和/或其他国家的商标或注册商标。
受Sectigo SSL保护