2011-03-18 112 views
0

我有一個龐大的數據集,我想提取沒有特定關鍵字的行。提取特定行的Excel公式

例如,讓說,我有以下的數據集(兩列):

+--------------+------------------+ 
| Nylon  | Nylon wire  | 
| Cable  | 5mm metal cable | 
| Epoxy  | some comment | 
| Polyester | some comment | 
+--------------+------------------+ 

我想找到不包含關鍵字尼龍和環氧樹脂(等關鍵詞爲此事)的行並將這些行放在另一個地方(即工作表)。

提前致謝!

回答

1
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 
0
 
    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)))) 

現在,你可以使用自動篩選工具來過濾那些發現是真的。

0

我會告訴你如何檢查一個字符串是否在其他列內,返回一個布爾值。然後,您需要決定如何處理積極案例。我相信你會使用VLOOKUP或類似的東西。

請替換;通過,。我沒有使用英文區域設置ATM。

您可以結合FIND和ISERROR函數來查找結果。 ISERROR返回一個布爾值,並且可以根據需要組合多個列檢查。

例子:

比方說,你在小區C1和D1的測試中的關鍵字,你上面提供的範圍在A2開始。

現在,我們可以在C2中添加一個測試來檢查字符串尼龍是否存在於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