如何将包含缺失数据的列表压缩为不包含缺失数据单元格的新列表?

如何将包含缺失数据的列表压缩为不包含缺失数据单元格的新列表?
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    

如何将包含缺失数据的列表压缩为不包含缺失数据单元格的新列表?

答案1

您的问题没有具体说明您希望多久执行一次或需要对多少列执行此操作。这是快速而肮脏的方法。如果您需要很多列,那么最好使用 vba

  1. 选择包含数据的列。添加过滤器(数据菜单->过滤器)。
  2. 选择落下列表中并取消选中错误复选框
  3. 选择该列中的第一个单元格。
  4. 按 CTRL+SHIFT+DOWN 选择其他可见单元格
  5. 按 CTRL+C 复制
  6. 移动到工作簿中的新工作表(或按 SHIFT+F11 创建新工作表)
  7. 按 CTRL+V 粘贴数据,不会出现错误

注意:对于旧版本的 Excel,您必须使用过滤器下拉菜单中的“自定义过滤器”(“不等于”错误)。您可以快速进入这里(查看标题“Excel 自定义自动过滤器”)。

@Nixda:哎呀。。直到我回答完刷新页面才注意到你在评论中给出了基本相同的答案

答案2

除了 tiktok 的 Autofilter 解决方案(当然更灵活)之外,这是另一个稍微短一点的“快速而肮脏”的修复方法:

  1. 选择 A 列 ( Ctrl- Space)
  2. ->查找和选择->Ctrl- G)->特别的Alt- S
  3. 根据其公式(Alt- F)或常数(Alt- O),选择任一选项并取消选中错误Alt- E
  4. 复制(Ctrl- C)——这将选择每个没有错误的单元格。
  5. 选择目标(例如单元格B1)并粘贴(Ctrl- V

完毕!

如果您不想要数据的副本而只想删除错误,您也可以将步骤 3 修改为仅有的选择错误然后直接删除它们 (( Ctrl- -)

答案3

或者使用公式(根据您的需要进行调整)。从 B1 开始并向下复制。

=IFERROR(INDEX($A$1:$A$10,SMALL(IF(ISNUMBER($A$1:$A$10),ROW($A$1:$A$10)),ROW(A1))),"")

这是一个数组公式,必须用Ctrl++确认ShiftEnter

在此处输入图片描述

如果数据不在 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 开始返回数字,并将用于查找最小值(1)、第二小值(2)、第三小值(3)等值。

答案4

我需要澄清@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 - 再次突出显示该单元格 - 将角落框向下拖动到输出单元格所需的行/列数

相关内容