Excel – 删除两列之间的所有一对一行
问题:我有列A和列B.列A是可预测的,有数千列A行。 B列在每列A有不同的行。例如,A列可能在列B中有5行的值REQ_000021。这些都可以。 我需要删除的行是每列A只有一列B的行。
我知道这不是一个典型的事情,人们这样做,我不能find一个VB脚本在那里做这个。 如果网站允许,我会张贴一张照片。 首先需要15个代表点。
编辑:
我刚刚学会了如何在stackoverflow上进行换行,所以在这里:
Col A Col B
----------------------------------
斯科特我们
德国
西class牙
----------------------------------
布莱恩美国
----------------------------------
马克美国
----------------------------------
意大利
蒂姆葡萄牙
爱尔兰
----------------------------------
删除布莱恩和马克,因为列A和列B有一行。
离开Scott和Tim,因为每列A行有多于一列的B行。 请记住,Scott和Tim的列A是大的合并行。
这就是我想要完成的。
编辑:
每个斯科特的答案,这是输出:
为了清楚起见,我正在标注一些标记,以便看到这个的其他人。
编辑:这下面的VB脚本将删除列C中的“DELETE”值的任何行
我在Excel中用它作为macros。 对于那些刚刚接触macros的用户,请在Excel 2007中启用“开发人员”视图以访问允许切换到VB屏幕的视图。
Sub deleteDeleteString() Dim rng As Range,cell As Range,del As Range Dim strCellValue As String 设置rng = Intersect(Range(“C:C”),ActiveSheet.UsedRange) 对于每个单元格rng strCellValue =(cell.Value) '如果在列C中的单元格中发现DELETE超过0次,则将其删除整行 如果InStr(strCellValue,“DELETE”)> 0那么 如果del不是那么 设置del =单元格 否则:设置del =联合(del,cell) 万一 万一 下一个单元格 在错误恢复下一步 del.EntireRow.delete 结束小组
这是根据您的数据格式化编辑的新公式。
在C1中放置以下公式并在列中运行以获取要删除的行:
=IF(OR(ISBLANK(A1),ISBLANK(A2)),"","DELETE")
您可能希望也可能不希望先取消合并列A中的单元格,但根据Excel如何处理合并单元格的规则,这应该不重要。 我在您提供的数据集上testing了这一点,它在合并或不合并单元格的情况下工作。
我不提供VBA解决scheme,因为您不需要在这里。 运行此公式,而不是在列C上为“DELETE”筛选并删除行。