在excel中有A.B.C三列,如何快速筛选出指定区域内所有C列有数据的行?

如何快速筛选出来之后,复制到另一表格中或直接在另一表格单元格内输入函数来实现?图一是数据源,图二是筛选结果,有没有什么快捷的办法呢?

    数组公式为:

    =INDEX(A:A,SMALL(IF($C:$C<>"",ROW($C:$C),4^8),ROW($A1)))&""

    按ctrl+shift+enter产生花括号即可。

    如图所示:

追问

不好意思,点错了,我想了解一下这套公式的原理,因为我套用到我的表格中显示为空白,再者,这一套公式我只是照搬,没能理解透彻,下次在遇到类似的问题,还是不会,如果您有空,麻烦教教我,仅针对这套公式的原理和逻辑,非常感谢。

追答

这公式的意思是,如果C列不为空值,返回C列的行号,如果是空值就返回一个极大值。
然后把返回的这些数值从小到大排列,就相当于依次从小的行号开始取出。

这公式的意思是,如果C列不为空值,返回C列的行号,如果是空值就返回一个极大值。
然后把返回的这些数值从小到大排列,就相当于依次从小的行号开始取出。
取出用函数index,当右拉时依次变为取出其它列的数据。

追问

$C:$C""的""和4^8是什么意思呢?我向右拖拽就全变成E1所得结果向下的话就是#MUM!

追答

c:c列不等于空;
4^8就是一个极大值,保证这个行数据是空的就行,如果你的99行是空的,写99也行。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-02-21

筛选,日期列,不勾选空白或数字筛选,大于,输入0,确定。

复制后,粘贴到其他单元格。