我有一栏:
1 - name
3 - name
6 - name
我想让另一列显示非空单元格,如下所示:
1 - name
3 - name
6 - name
我在OSX上运行它,所以我不能使用VBA。我也不能使用数据过滤器,因为这一栏位于实际数据的右侧,如果我过滤它,它也会隐藏相关数据。
最终我试图让一个列(任何列)只显示非空单元格值,每行一个,具有自动更新功能。
根据下面的建议,我尝试了以下方法:
=INDEX(BRsat,SMALL((IF(LEN(BRsat),ROW(INDIRECT("1:"&ROWS(BRsat))))),ROW(L1)),1)
但是它将计算时间延迟到极限,在7个不同的标签上实施一次后,计算机点击落后超过15秒。
有什么建议吗?
答案 0 :(得分:3)
一些建议:
SpecialCells方法
Special
并检查空白 Delete
,然后选择checlk shift cells up
此3步骤流程的前两个步骤(选择空白)显示在Debra Dalgleish's site
数组公式方法
答案 1 :(得分:1)
给它一个镜头,输入为Ctrl+Shift+Enter
的数组公式):
快速粘贴版本(注意:您需要将这些引用更改为工作表中的引用 - 我使用了A1:A7
中的数据[见图片]):
=IFERROR(INDEX($A$1:$A$7, SMALL(--(IF($A$1:$A$7<>"",ROW($A$1:$A$7),100000)),ROW())), "")
更长的形式(更好地了解正在发生的事情):
=IFERROR(
INDEX(
$A$1:$A$7,
SMALL(
--(IF($A$1:$A$7<>"",ROW($A$1:$A$7),100000)),ROW())),
"")
基本上,我们在列上使用索引公式。 row
参数使用SMALL()
公式来查找列包含空值的所有实例,然后分配一个任意高的数字,希望永远不会匹配(这可能是不好的做法:)) 。 k
的{{1}}参数(要匹配的数组中的第k个元素)只是行号,这意味着当您在列表中向下时,您将不会匹配当前列表中的项目