excel用数组公式从一列中提取非空单元格值

时间:2022-06-06 16:29:26 

如果Excel工作表的某列中包含一些空单元格,要去掉这些空单元格,将非空单元格内容放到另一列中,最快的方法是通过筛选隐藏空单元格,再复制到其他列中。如果不使用筛选,还可以用下面的数组公式:


假如数据在A2:A20区域中,将提取后的数据放到B列中,在B2单元格中输入数组公式:

=INDEX($A$2:$A$20,SMALL(IF($A$2:$A$20="","",ROW($A$2:$A$20)-ROW($A$2)+1),ROW($A2)-ROW($A$2)+1))

公式输入完毕后按Ctrl+Shift+Enter结束,然后向下填充公式,直到出现“#NUM!”为止。

说明:

SMALL函数的语法为:

SMALL(array, k)

返回数据集“array”中的第“k”个最小值。

公式中SMALL函数的第一个参数“IF($A$2:$A$20="","",ROW($A$2:$A$20)-ROW($A$2)+1)”产生一个数组:

{1;"";"";4;"";"";7;8;"";"";11;12;13;"";"";"";17;"";19}

该数组中的数字为A2:A20区域中非空单元格对应的位置,而空引号则对应区域中的空单元格。

第二个参数“ROW($A8)-ROW($A$2)+1”根据B列中单元格的位置依次返回“1”、“2”、“3”……

上述数组中,第1个最小值为“1”,第2个最小值为“4”,……。这样就用SMALL函数“去掉”了数组中的空值,最后用INDEX函数返回一列连续的非空单元格值。本例由于A2:A20区域中只有9个非空单元格,当SMALL函数的第2个参数为“10”时就会出现错误,说明A列中的非空单元格值已返回完毕

标签:公式,函数,单元格,数组,Excel函数
0
投稿

猜你喜欢

  • 如何巧用Excel公式计算个人所得税

    2022-08-29 19:34:45
  • ​Word怎么将打印预览和打印加到快速访问栏

    2023-02-26 05:04:32
  • Word文件双面打印教程

    2023-12-03 00:00:33
  • 批量添加Word图片边框,1秒就可以完成

    2022-05-18 18:29:22
  • 在word文档中怎么插入水印防伪标识?

    2022-04-01 18:11:33
  • excel2016怎么开启实时预览及更改屏幕提示样式?

    2022-11-01 05:53:09
  • 办公人不能不知道的8个使用技巧,提升你的Word编辑效率

    2023-11-09 03:32:01
  • Excel单元格显示"#VALUE!"解决方法 1

    2023-03-07 23:34:38
  • Excel 2019如何创建动态名称

    2022-01-17 15:38:05
  • excel表格对相同大小的单元格怎样设置排序

    2023-02-05 21:13:15
  • 手把手教你如何制作Excel表格

    2022-10-02 06:47:18
  • Excel双负号“--”的作用,这操作太牛了

    2023-04-11 07:14:59
  • word样式和模板的区别

    2022-10-25 06:43:59
  • 微软Project Madeira商业管理解决方案开始预览

    2023-11-05 10:58:17
  • 使用Excel数据透视表完成5种常用数据分析

    2022-03-29 05:28:41
  • word中圆圈11怎么打?Word、Excel中圆圈11符号输入方法

    2022-09-07 05:46:23
  • Win10系统怎么更改数据格式?Win10系统更改数据格式的方法

    2023-01-13 14:49:54
  • Win10系统如何禁止自动安装捆绑软件?

    2023-11-12 06:04:03
  • excel表格如何加行

    2022-08-09 01:50:05
  • 修复Excel有 XML 错误的 /xl/sharedStrings.xml

    2023-05-05 05:16:37
  • asp之家 电脑教程 m.aspxhome.com