[英]Excel Formula for extracting specific rows
我有一个庞大的数据集,我想提取没有某些关键字的行。
例如,假设我有以下数据集(两列):
+--------------+------------------+
| Nylon | Nylon wire |
| Cable | 5mm metal cable |
| Epoxy | some comment |
| Polyester | some comment |
+--------------+------------------+
我想查找不包含关键字尼龙和环氧树脂(以及与此相关的其他关键字)的行,并将这些行放在另一个位置(即工作表)。
提前致谢!
Sub a()
With Worksheets(1)
j = 1
For i = 1 To .UsedRange.Rows.Count
If .Rows(i).Find(what:="Nylon") Is Nothing And .Rows(i).Find(what:="Epoxy") Is Nothing Then
.Rows(i).Copy Destination:=Worksheets(2).Rows(j)
j = j + 1
End If
Next i
End With
End Sub
A | B | C -------------------- ------------------- -------- 1 Search Term -> | nylon | 2 Name | Description | Found 3 Nylon | Nylon Wire | TRUE 4 Cable | 5 mm metal cable | FALSE 5 Exoxy | some comment | FALSE 6 Polyester | some comment | FALSE
在上面的示例中,我将在A2:C6上创建一个自动过滤器,第一行是我的标题。 在C3:C6的每个单元格中,我都有一个类似于(来自C3)的公式:
=OR(NOT(ISERROR(SEARCH($B$1,A3))),NOT(ISERROR(SEARCH($B$1,B3))))
现在,您可以使用“自动筛选”工具筛选“发现”为真的对象。
我将展示如何检查一个字符串是否在其他某些列中,并返回一个布尔值。 然后,您需要确定如何处理积极案件。 我相信您会使用VLOOKUP或类似的东西。
请更换; 通过,。 我没有使用英语区域设置的ATM。
您可以结合使用FIND和ISERROR函数来查找结果。 ISERROR返回一个布尔值,并且您可以根据需要组合多个列检查。
例:
假设您在单元格C1和D1中有测试关键字,而您在上面提供的范围从A2开始。
现在,我们可以将一个测试添加到C2中,以检查字符串Nylon是否存在于A2中,即= ISERROR(FIND(C1;$A$2))
。 我们还需要检查字符串Nylon是否存在于B2中,然后添加第二个条件: AND(ISERROR(FIND(C1;$A$2));ISERROR(FIND(C1;$B$2)))
当我们测试FIND函数是否返回错误时,这意味着找到字符串后我们的函数将返回false。 为了更容易理解,我认为最好在公式中添加一个NOT条件,然后如果C1中的字符串出现在A2或B2中,我们的函数将返回TRUE:
=NOT(AND(ISERROR(FIND(C1;$A$2));ISERROR(FIND(C1;$B$2))))
然后,我们将此公式复制到右侧的一个单元格中,以测试D1值Epoxy。
现在,这就是结果结构:
Nylon Epoxy
Nylon | Nylon wire | TRUE | FALSE
Cable | 5mm metal cable | FALSE | FALSE
Epoxy | some comment | FALSE | TRUE
Polyester | some comment | FALSE | FALSE
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.