从Excel中的新范围列表中的范围返回非空行

时间:2017-12-30 06:34:04

标签: excel

使用Excel,假设有一系列数据,包括文本和数字值。但有些是空行。如何使用Excel函数创建一系列仅包含非空行的列表?因此,我不必每天复制,粘贴和删除空白行。

例如,Raw数据表如下,

AAA 111 111 111 111

BBB 111 111 111 111

AAA 111 111 111 111

CCC 111 111 111 111
QQQ 111 111 111 111     
SSS 111 111 111 111


BBB 111 111 111 111

然后,创建一个新的表格范围,

 AAA 111 111 111 111
 BBB 111 111 111 111
 AAA 111 111 111 111
 CCC 111 111 111 111
 QQQ 111 111 111 111
 SSS 111 111 111 111
 BBB 111 111 111 111

我试图使用这个公式。但是,它不起作用......

 {=IFERROR(INDEX($A$1:$E$12,SMALL(IF($A$1:$E$12<>"",ROW($A$1:$E$12)),ROW(F1:J1))),"")}
 {=IFERROR(INDEX($A$1:$E$12,SMALL(IF($A$1:$E$12<>"",ROW($A$1:$E$12)),ROW(F2:J2))),"")}
 {=IFERROR(INDEX($A$1:$E$12,SMALL(IF($A$1:$E$12<>"",ROW($A$1:$E$12)),ROW(F3:J3))),"")}
 {=IFERROR(INDEX($A$1:$E$12,SMALL(IF($A$1:$E$12<>"",ROW($A$1:$E$12)),ROW(F4:J4))),"")}
 {=IFERROR(INDEX($A$1:$E$12,SMALL(IF($A$1:$E$12<>"",ROW($A$1:$E$12)),ROW(F5:J5))),"")}
 {=IFERROR(INDEX($A$1:$E$12,SMALL(IF($A$1:$E$12<>"",ROW($A$1:$E$12)),ROW(F6:J6))),"")}
 {=IFERROR(INDEX($A$1:$E$12,SMALL(IF($A$1:$E$12<>"",ROW($A$1:$E$12)),ROW(F7:J7))),"")}

1 个答案:

答案 0 :(得分:2)

对于行1,数组上下文中的

IF($A$1:$E$12<>"",ROW($A$1:$E$12))将导致行向量{1,1,1,1,1}。因此,它总是导致每行的行号或FALSE的5倍。所以你将得到每个非空行号5次。

一个选项只是检查列A是否为空并且每个单元格而不是单行的数组公式:

{=INDEX($A$1:$E$20,SMALL(IF($A$1:$A$20<>"",ROW($A$1:$A$20)),ROW(1:1)),COLUMN(A:A))}

示例:

Excel sheet

当然,对于大范围而言,这实际上并不适合。但我没有看到使用公式的另一种可能性。

我要做的是使用数组公式的辅助列:

{=AND(A1:E1<>"")}
每行

Sort column in excel

然后按此辅助列降序对表进行排序。