本次的练习是:如下图1所示,列C中有很多空单元格,使用公式将其整理,移除空单元格并将值放置在列D中。
?
图1
先不看答案,自已动手试一试。...公式
在单元格D2中,输入数组公式:
=IFERROR(OFFSET(C2,SMALL(IF((List)>1,ROW(List),""),ROW(E1))-2,0),"")
下拉至单元格出现空为止。...重点看看:
SMALL(IF((List)>1,ROW(List),""),ROW(E1))-2
我们要从IF((List)>1,ROW(List),"")中获取第ROW(E1)小的值,而ROW(E1)...那么,IF语句生成的数组由列C中含有值对应的行号和空组成,即:
{2;””;””;””;6;7;8;””;””;””;””;13;14;15;…}
相应地在工作表中演示如下图3所示。
?...2;””;””;””;6;7;8;””;””;””;””;13;14;15;…},1)
得到:
2
将公式向下拉时,ROW(E1)将自动更新为ROW(E2)、ROW(E3)、…等,即返回值2、3、…,获取数组中第