Column A to Column B
0.83 0.83
0.6 0.6
#N/A 0.99
#N/A 0.93
0.99
#N/A
0.93
如何在没有缺少数据的单元格的情况下将缺少数据的列表压缩到新列表?
Column A to Column B
0.83 0.83
0.6 0.6
#N/A 0.99
#N/A 0.93
0.99
#N/A
0.93
如何在没有缺少数据的单元格的情况下将缺少数据的列表压缩到新列表?
Answers:
您的问题并不具体说明您要执行此操作的频率或您需要执行此操作的列数。这是快速而肮脏的方法。如果你需要很多列的东西,那么使用vba可能会更好
注意:对于旧版本的Excel,您必须使用过滤器下拉菜单中的“自定义过滤器”(“不等于”错误)。你可以在这里快速找到(在标题“Excel Custom AutoFilters”下查找)。
@Nixda:yikes ..我没有注意到你在评论中给出了基本相同的答案,直到我在回答之后刷新页面
或者使用公式(根据您的需要调整)。从B1开始并复制下来。
=IFERROR(INDEX($A$1:$A$10,SMALL(IF(ISNUMBER($A$1:$A$10),ROW($A$1:$A$10)),ROW(A1))),"")
这是一个数组公式,必须用Ctrl+ Shift+ 确认Enter

如果数据不是A1到A10,而是H25到H34,请使用
=IFERROR(INDEX($H$25:$H$34,SMALL(IF(ISNUMBER($H$25:$H$34),ROW($A$1:$A$10)),ROW(A1))),"")
注意公式如何仍显示Row($ A $ 1:$ A $ 10)。对于有效条目,此部分将返回1到10之间的数字,这是INDEX拉出正确行所需的数字。
此外,最后一行(A1)保持不变,因为它从一个向上返回数字,并将用于查找最小(1),第二最小(2),第三最小(3)等值。
我需要在@teylyn的回答中澄清一些事情。在上面的例子中,数组公式应该被复制粘贴到B1中(或者公式输出所需数据位置的第一个单元格)...然后点击C + S + E,然后取出该单元格并将其向下拖动所需数量的输出单元 - 例如 - 上例中的4。上面有点令人困惑,微软自己的帮助网站没有帮助任何用户,因为它指示用户突出显示任何数组公式的输出单元格,然后输入你的公式到第一个单元格,然后点击C + S + E 。我花了一段时间试图解决这个问题,直到我意识到我的第一步是错误的,这让我很生气。
如果你突出显示,粘贴公式,C + S + E,它将无法工作。只有在粘贴C + S + E,然后将公式向下拖动或穿过目标单元格时,它才会起作用。
所以这样的东西也会起作用:
= IFERROR(INDEX(A:A,SMALL(IF(ISNUMBER(A:A),ROW(A:A)),ROW(A1))), “”)
如果你的数据在D栏中,或者像这样:
= IFERROR(INDEX($ d:$ d,SMALL(IF(ISNUMBER($ d:$ d),ROW($ d:$ d)),ROW(D1))), “”)
...但是最后的“行”引用必须保留为相对引用,因为当您向下拖动目标单元格时,它将使用D2,D3,D4等填充公式。
所以,具体而言: - 突出显示一个目标单元格 - 粘贴到其中= IFERROR(INDEX(A:A,SMALL(IF(ISNUMBER(A:A),ROW(A:A)),ROW(A1))), “”) - control + shift + enter - 再次突出显示该单元格 - 将角落框向下拖动到输出单元格所需的行数/列数