excel高手请进:用公式显示非空白行?

比如说
数值 用公式显示非空格的
1
1 5
5 6
8
10
6

8

10
相当于代替筛选非空白的功能!
问题显示有问题
是这样的
数值

1
5

6

8

10
用公式显示后为
1
5
6
8
10

第1个回答  2006-09-23
首先,用公式做这个表太烦!
原因:计算结果还是要放置到表格中原有数据相对应的位置(行)
因此,空行,仍会保留。这就好像,使用“选项性粘贴”中,跳过空白单元一样,复制结果仍有空白间隔。
其次,筛选、排序都是很自然的想法。
再者,用生成列表的方法,也是很有效的,选项非空项即可。
最后,种种方法表明,使用还是不方便。怎么办?有办法!(宏)
录一个小巧的宏: 选定列中的部分数据(含有空白),按一下快捷键,非空数据就自动生成了。
这样好吗?好的话,往下看:

ActiveSheet.ListObjects.Add(xlSrcRange, Selection, xlNo).Name = "列表1"
Selection.AutoFilter Field:=1, Criteria1:="<>"
Selection.Copy
Range("A20").Select '自己指定其它远离数据的行。
ActiveSheet.Paste
第2个回答  2006-09-25
假设数据从E2到E12,储存格为
=IF(ROW(1:1)>COUNTA(E$2:E$12),"",INDEX(E:E,SMALL(IF(NOT(ISBLANK(E$2:E$12)),ROW(E$2:E$12)),ROW(1:1))))
注意:公式输入后,请按"Ctrl" + "Shift" + "Enter",否则无法得到要的结果

以上已确认... :)本回答被提问者采纳
第3个回答  2006-09-24
1、定义一个函数 Data为要计算的原始数据区域,如Data=$A$2:$A$23。
2、在B2输入数组公式
=IF(ROW(A1)<=COUNT(IF(Data<>"",ROW(INDIRECT("1:"&(COUNTA(Data)+COUNTBLANK(Data)))))),INDEX(Data,SMALL(IF(Data<>"",ROW(INDIRECT("1:"&(COUNTA(Data)+COUNTBLANK(Data))))),ROW(A1))),"")
并向下复制该公式,即得到你要的结果。
相似回答