我正在处理一个 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
然后,您将根据要删除的行进行筛选,选择并删除它们。填写1
和2
通常很容易,只需手动输入前四个条目,选择四个值(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右下角的拖动功能向下拖动。
注意:第一次尝试时请确保将其一直拖到底部。