在 MS Excel 中,我需要自动删除每个替代行,而不是手动

在 MS Excel 中,我需要自动删除每个替代行,而不是手动

我正在处理一个 Excel 电子表格,其中必须删除每个替代行,因为它弄乱了我的结果。这是一组 4000 个随机生成的数据。因此,删除 2000 个数据大约需要 30 分钟。是否可以在 30 秒内仅使用 Excel 完成此操作并避免编程?

在 MS Excel 中是否有任何技巧可以做到这一点?

PS:我希望删除的单元格为空,而不是被以下条目替换。

答案1

您可以使用删除交替行的宏,或者你也可以作弊。

如果这是一次性的事情,我会作弊并添加另一个标题为的列even。然后设置您的数据,使其显示如下:

value    item    even
10       foo     1
2        bar     2
11       baz     1
13       qux     2

然后,您将根据要删除的行进行筛选,选择并删除它们。填写12通常很容易,只需手动输入前四个条目,选择四个值(1 2 1 2),然后双击选择右下角的黑框。

我的直觉是,你可能根本不想这样做。一般来说,每当我遇到这种特殊需求时,我都会找到一种更好的方法来解决它,那就是使用 Excel 的内置工具(例如数据透视表)。

答案2

一个简单的 VBA 脚本就可以了。保存一份启用宏的 Excel 文档副本。创建一个宏,粘贴此代码并单击运行。

Sub DeleteAlternateRow()
    For i = 1 To 4000
        Cells(i, 1).Select
        ActiveCell.EntireRow.Delete
    Next i
End Sub

注意:此宏会删除第 1、3、5 行……如果您想从删除第二行开始,则从 2 开始 for 循环。在运行任何宏之前,不要忘记复制文档

答案3

在新列(例如“X”)中使用

=MOD(LINE(X1);2)

并将列扩展到整个集合。这样应该会得到 0 和 1 的交替序列。现在自动过滤并仅选择 0(或 1),然后点击删除。

如果您使用的不是英文版 Excel,则可能需要查找本地版本的函数。例如,在德国版本为REST(ZEILE(X1;2))。MOD 是模函数,LINE 应该会给出当前行号。

答案4

假设您的数据在 A 列,您希望仅获取奇数行的数据。

步骤 1:单击不同的列,例如 B。

第 2 步:在第 1 行、B 列写入“=A1”。

步骤 3:单击该单元格,使其亮起蓝灯。

步骤 4:同样选择其下方的单元格,现在应该有两个单元格蓝色 B1 和 B2。

步骤5:使用单元格B2右下角的拖动功能向下拖动。

注意:第一次尝试时请确保将其一直拖到底部。

相关内容