excel学习库

excel表格_excel函数公式大全_execl从入门到精通

Excel技巧:快速提取行中非0单元格内容

收到粉丝提问:EXCEL如何快速找出一行的非0单元并列出呢?如图所示:

从图中不难看出,题主需要提取行中非0单元格内容,并分别填入后三个单元格中。小兔分享几个解决办法。

方法一:INDEX + SMALL函数

我们可以在H2单元格输入以下公式:

=IFERROR(INDEX($B2:$G2,SMALL(IF($B2:$G2<>0,COLUMN($B2:$G2)-COLUMN($B2)+1),COLUMN(A1))),"")

公式说明:

1$B2:$G2<>0判断 B2:G2 范围内的每个单元格是否不等于零。

返回一个由 TRUE FALSE 组成的数组,表示哪些单元格的值不等于零。

2COLUMN($B2:$G2)-COLUMN($B2)+1

计算 B2:G2 范围内每个单元格的相对列位置。返回一个由列位置组成的数组,例如 {1, 2, 3, 4, 5, 6}

3IF($B2:$G2<>0, COLUMN($B2:$G2)-COLUMN($B2)+1)

将非零单元格的列位置保留下来,零单元格的位置用空白替换。返回一个数组,例如 {1, 2, "", 4, "", ""}(假设 B2C2E2 F2 是非零值)。

4SMALL(..., COLUMN(A1))

COLUMN(A1) 返回 1,表示从数组中找第1个最小值。返回第一个非零单元格的位置。

5INDEX($B2:$G2, ...)根据找到的位置返回 B2:G2 范围内对应的值。

6IFERROR(..., "")

如果 INDEX 函数返回错误(例如没有找到非零值),则返回空字符串 ""

方法二:FILTER函数

FILTER 函数是用于筛选数据的强大函数,它可以根据指定条件从数组中提取匹配的值。

我们可以在H2单元格输入这个公式:

=FILTER($B2:$G2,$B2:$G2<>0)

FILTER 函数组合只有在单元格有足够空间显示结果时才会有效。否则,它会返回错误或显示部分结果。

需要注意的是,该函数适用于 Excel 365 Excel 2021,以前的版本不支持使用哦。

方法三:INDEX + FILTER函数

由于列表中正好有三个单元格有内容,因此直接使用FILTER函数就可以了,但我们需要知道的是,方法二中的公式,是提取所有非0的单元格内容,倘若存在内容的单元格超过三个,就需要借助INDEX函数,提取前三个。

可以在H2单元格输入这个公式:

=IFERROR(INDEX(FILTER(B2:G2,B2:G2<>0),{1,2,3}),"")

公式说明:

该公式通过FILTER函数从单元格范围 B2:G2 中筛选出所有非零值。再借助INDEX函数从这些非零值中提取前 3 个值。

使用IFERROR函数处理错误值,如果在筛选或提取过程中出现错误(没有非零值),则返回一个空字符串,而不是错误提示。

以上分享的3种方法,都可以快速找出一行的非0单元并列到对应的单元格中,根据自己的情况和使用版本,选择适合自己方法。若还有疑问,欢迎给小兔留言哦~

想了解更多精彩内容,快来关注

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接