昨天有个小伙伴私信我,如何用公式从某个数据区域中获取非空单元格的数值。他的问题大致是这样子的:下图中a1:a10是数据区域,从这个数据区域中用公式拿到非空单元格的数据,也就是c1:c7单元格区域显示的结果。该如何实现呢?
解决该问题的思路并不难,我们要先把a1:a10单元格区域中非空单元格的行号找到并获取到,然后使用index函数取出对应的值即可。
具体操作步骤如下:
一、找到非空单元格所在的行号。
选中e1:e10单元格 -- 在编辑栏中输入公式“=if(a1:a10,row(a1:a10))” -- 按“ctrl+shift+enter”回车。
公式的意思是:将a1:a10单元格区域的值与空值进行比较,如果不为空,则显示相应非空单元格数值所在的行号,如果为空,则显示为false。
二、获取已经找到的非空单元格所在的行号。
选中f1:f10单元格 -- 在编辑栏中输入公式“=small(e1:e10,row(a1:a10))” -- 按“ctrl+shift+enter”回车。
公式的意思是:row(a1:a10)公式得到一个行号的数组{1;2;3;4;5;6;7;8;9;10},用small函数在e1:e10数据区域中按从小到大的顺序取出第1至第10小的值。
三、获取非空单元格行号对应的值。
选中g1:g10单元格 -- 在编辑栏中输入公式“=index(a1:a10,f1:f10)” -- 按“ctrl+shift+enter”回车。
公式的意思是:index函数分别取出a1:a10数据区域中第1、3、4、6、7、10行的数据。从上图可以看到,单元格为空的数据取出来的值为错误值,所以要把这些错误值给屏蔽。
四、屏蔽错误值。
选中h1:h10单元格 -- 在编辑栏中输入公式“=iferror(g1:g10,)” -- 按“ctrl+shift+enter”回车。
公式的意思是:如果g1:g10数据局区域中有错误值,则返回空值,否则返回公式的结果。
五、组合公式。
选中c1:c6单元格 -- 在编辑栏中输入公式“=iferror(index(a1:a10,small(if(a1:a10,row(a1:a10)),row(a1:a10))),)” -- 按“ctrl+shift+enter”回车即可。
六、动图演示如下。
上述操作中,有什么不懂之处可以在评论区留言哦!
觉得文章不错,请转发和点赞,您的不断支持就是小编继续写出优质教程的动力!
关注我,每天都可以让你学到一个实用的办公技巧,提升你的办公效率!