excel函数怎么移除单元格后的值?excel函数获取单元格区域中移除空单元格后的值,如下图1所示,列C中有很多空单元格,使用公式将其整理,移除空单元格并将值放置在列D中。
图1
自已动手试一试。
公式
在单元格D2中,输入数组公式:
=IFERROR(OFFSET($C$2,SMALL(IF((List)>1,ROW(List),””),ROW(E1))-2,0),””)
下拉至单元格出现空为止。
公式中的List为名称,引用列C中的单元格区域C2:C10000。
公式解析
主要看公式中的:
OFFSET($C$2,SMALL(IF((List)>1,ROW(List),””),ROW(E1))-2,0)
OFFSET函数的语法为:
OFFSET(reference, rows, cols, [height],[width])
与公式相对应:
参数reference的值为:$C$2
参数rows的值为:SMALL(IF((List)>1,ROW(List),””),ROW(E1))-2
参数cols的值为:0
也就是说,OFFSET函数返回以单元格C2为起点向下SMALL(IF((List)>1,ROW(List),””),ROW(E1))-2行的单元格区域。
重点看看:
SMALL(IF((List)>1,ROW(List),””),ROW(E1))-2
我们要从IF((List)>1,ROW(List),””)中获取第ROW(E1)小的值,而ROW(E1)=1,即最小的值。
对于IF((List)>1,ROW(List),””)来说,因为List是一个9999行1列的区域,所以
(List)>1
解析为由TRUE/FALSE值组成的9999行1列的数组。列C中单元格的值大于1,返回TRUE,否则返回FALSE,在工作表中演示如下图2所示。
图2
而ROW(List)则是由第2行至第10000行的行号组成的数组。
那么,IF语句生成的数组由列C中含有值对应的行号和空组成,即:
{2;””;””;””;6;7;8;””;””;””;””;13;14;15;…}
相应地在工作表中演示如下图3所示。
图3
将上述生成的数组代入SMALL函数中:
SMALL(IF((List)>1,ROW(List),””),ROW(E1))
即:
SMALL({2;””;””;””;6;7;8;””;””;””;””;13;14;15;…},1)
得到:
2
将公式向下拉时,ROW(E1)将自动更新为ROW(E2)、ROW(E3)、…等,即返回值2、3、…,获取数组中第2小的值、第3小的值、…
相应地在工作表中演示如下图4所示。
图4
这样,在单元格D2中的公式最终等价为:
OFFSET($C$2, 2-2,0)
得到单元格C2中的值。
在单元格D3中的公式最终等价为:
OFFSET($C$2, 6-2,0)
得到单元格C6中的值。
在单元格D4中的公式最终等价为:
OFFSET($C$2, 7-2,0)
得到单元格C7中的值。
依此类推。
图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!
内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,发布内容不收取任何费用也不接任何广告!
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本文部分文字与图片资源来自于网络,部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们,情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!