删除行如果超过5个列为空

时间:2017-10-04 13:12:20

标签: excel

您好我有这样的excel tabelle;(有80000行和11列)

Name Lastname Email          question-1   question-2   question-3   question-4 question-5
Sam   Bob      s@gmail.com    a             b           c                       a    
Ally  ko       a@gmail.com    a                         c                       a
John  So       b@gmail.com    
marc  jo      c@gmail.com     a             b           c                       a
sarah du      sa@gmail.com    

所以我的问题是如何自动删除没有问题答案的行

3 个答案:

答案 0 :(得分:1)

要删除行,您必须使用VBA。试试以下。

Sub Demo()
    Dim ws As Worksheet
    Dim rng As Range
    Dim lastRow As Long, i As Long

    Set ws = ThisWorkbook.Sheets("Sheet6")  'change Sheet6 to your data sheet

    With ws
        lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
        For i = 2 To lastRow
            If WorksheetFunction.CountIf(.Range("D" & i & ":H" & i), "") = 5 Then   'check if all 5 cells are empty
                If rng Is Nothing Then      'add cell to range
                    Set rng = .Range("a" & i)
                Else
                    Set rng = Union(rng, .Range("a" & i))
                End If
            End If
        Next i
        If Not rng Is Nothing Then
            rng.EntireRow.Delete    'delete entire row of cells in range
        End If
    End With
End Sub

如何在Excel文件中添加上述代码:

  1. 打开工作簿
  2. Alt + F11 ,打开Visual Basic编辑器
  3. Insert菜单中点击Module
  4. 复制上面的代码并将其粘贴到右侧窗格中
  5. 要运行代码,请单击代码中的任意位置,然后按 F5

答案 1 :(得分:1)

对于VBA解决方案,Mrig的答案很有用。如果您想使用辅助列和过滤来执行此操作,请尝试以下操作:

添加新列并将此公式键入单元格tf.Variable(1.0,name="x")(或数据末尾的任何列):

I2

此外,您可以将上面的= AND(ISBLANK(D2:H2)) 更改为适用于您的工作表的内容。在我的工作表中,D2:H2D列对应于问题1到问题5列。

此外,这是一个数组公式,因此您必须在键盘上按 Ctrl + Shift + Enter 而不是<键入此公式后输入。

编辑:另一种没有数组公式的解决方案(由Mrig提供)是:

H

将此公式向下拖动,无论您的数据延伸多少行。

请参阅下面的示例。

enter image description here

注意= COUNTA(D2:H2)=0 如何出现在所有&#34;问题&#34;的行中。列是空白的。

接下来,您可以对此数据应用过滤器,以仅包含显示TRUE的帮助列中的那些行。

答案 2 :(得分:1)

与上述两个答案类似,另一种方法是结合建议的两种方法。

1)在excel中创建辅助公式,方法是在数据前面插入一个列,使用此公式(通过所有单元格向下拖放):     = IF(COUNTBLANK(E1:L1)&gt; = 5,TRUE,FALSE)

2)点击&#34;开发人员标签&#34;在Excel中

3)点击插入&gt;模块

4)粘贴此代码:

FALSE

5)将文件另存为.xlsm

6)单击“运行/子用户表单”。

7)点击左上角的excel图标,所有包含&gt; 5空格的行都将消失。