选择所有单元格彼此相等的所有行

时间:2017-08-28 00:08:49

标签: excel select conditional

我有一张大桌子,只显示一种类型的信息:某个研究地点是否有一种植物。我在第一列中列出了500多种,在列名中列出了30个站点。该表填充了一个简单的" Y"或" N"显示存在。例如:

Scientific Name         Old Wives Beach    Dadi      Orote N Airstrip
Abelmoschus moschatus   N                  N         N
Abrus precatorius       Y                  N         Y
Abutilon indicum        N                  N         N

但是,物种列表包含一些物种,这些物种不会出现在任何地点,使得一行充满了" N" s,就像上面例子中的第1行和第3行一样。我需要删除这些行,以使表更易于管理。

如果没有长的IF AND声明,有没有办法实现这个目标?

3 个答案:

答案 0 :(得分:1)

受到pnuts评论的启发,在新专栏中,使用a COUNTIF()公式。例如,=COUNTIF(B2:AE2,"Y"),假设行/列标题位于第1行和第A列,数据位于B2:AE501 +中。

如果然后选择整个范围,包括标题和新公式列并添加过滤器,那么您只能选择Y的计数为0的行。一旦只有0显示,您可以选择整行并删除它们(使用右键单击,删除)而不影响非零行。

此时,如果您不再需要计数列,可以关闭过滤器并删除列,但如果您发现计数因其他原因而派上用场,我不会感到惊讶。

或者,您可以使用过滤器来隐藏0行而不是删除它们,这样就不会完全删除数据,但它不再适合您。

答案 1 :(得分:0)

下面的代码是一种方法,假设数据中没有间隙。动画gif逐步演示如何工作。一旦理解了,就应该删除.select语句。

enter image description here

Sub deleteIfAllN()
Dim plantR As Range, cell As Range, allN As Boolean
Set plantR = Range("A2")
While plantR <> ""
  plantR.Select
  Set r = plantR.Offset(0, 1)
  allN = True
  Do
    r.Select
    If r <> "N" Then
      allN = False
      Exit Do
    End If
    Set r = r.Offset(0, 1)
  Loop Until r = ""
    Set plantR = plantR.Offset(1, 0)
    Rows(plantR.row - 1).Select
    If allN Then Rows(plantR.row - 1).Delete
Wend
End Sub

答案 2 :(得分:0)

您可以使用db.team1.update({ _id: ObjectId("59a36a757a3d6759f63a7f18")}, {$unset: {name: ""});

设置您的数据和标准区域,如下所示

对于您发布的示例,公式为:

Advanced Filter

对于30列,只需修改范围和计数。

之前

enter image description here

enter image description here

我选择过滤

请注意,=COUNTIF($B8:$D8,"N")<>3 还有一个选项可以将过滤器的结果放在另一个位置。