excel函数如何删除单元格后的值?
excel函数如何删除单元格后的值?Excel函数在删除单元格区域的空单元格后得到该值,如下图1所示。C列有很多空单元格,按公式排序,空单元格去掉,值放在D列.
图1
你自己试试。
公式
在“D2”单元格中,输入数组公式:
=IFERROR(OFFSET($C$2,SMALL)(IF((List)1,ROW(List),""),ROW(E1))-2,0),"")
直到下拉单元格为空。
公式中的列表是名称,引用C列中的单元格区域C2:C10000.
公式分析
主要看公式:
偏移量(2加元,小(中频(列表)1,行(列表),""),行(E1))-2,0)
OFFSET函数的语法是:
OFFSET(引用、行、列、[高度]、[宽度])
对应于公式:
参数引用的值为:$C$2。
参数row的值很小(if (list) 1,row (list),""),row (E1))-2。
参数cols的值为0。
也就是说,OFFSET函数返回小的单元格区域(if ((list) 1,row (list),""),row (E1))-从单元格C2往下2行。
关注:
小型(中频(列表)1,行(列表),""),行(E1))-2
我们希望从IF((列表)1,ROW(列表),"")和ROW(E1)=1中得到第一个ROW(E1)的较小值,即最小值。
对于IF((List)1,ROW(List),""),因为List是一个有9999行1列的区域,所以。
(清单)1
解析为由9999行和1列组成的数组,由真/假值组成。如果c列中单元格的值大于1,则返回TRUE否则,返回FALSE,并在工作表中演示,如下图2所示。
图2。
而ROW(List)是由第2行到第10000行的行号组成的数组。
然后,IF语句生成的数组由c列值对应的行号和空格组成,即:
{2;"";"";"";6;7;8;"";"";"";"";13;14;15;…}
因此,它显示在下面工作表的图3中。
图3。
将上面生成的数组替换为SMALL函数:
小(如果((列表)1,行(列表),""),行(E1))
那就是:
SMALL({ 2;"";"";"";6;7;8;"";"";"";"";13;14;15;…},1)
获取:
2
当公式被下拉时,ROW(E1)将自动更新为ROW(E2)、ROW(E3)、…等。即返回值2,3,…,并获取数组中的第二个最小值,第三个最小值,…。
因此,它显示在下面工作表的图4中。
图4
这样,单元格D2中的公式最终相当于:
抵销(2,2-2,0加元)
获取C2细胞中的值。
单元格D3中的公式最终等效于:
抵销(2,6-2,0加元)
获取C6细胞中的值。
单元格D4中的公式最终相当于:
抵销(2,7-2,0加元)
获取单元格C7中的值。
等等。
版权声明:excel函数如何删除单元格后的值?是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。