2011-03-18 7 views
0

J'ai un énorme ensemble de données et je veux extraire les lignes qui n'ont pas certains mots-clés.Excel Formule pour extraire des lignes spécifiques

Par exemple, laissez dit que j'ai l'ensemble de données suivantes (deux colonnes):

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

Je veux trouver les lignes qui ne contiennent pas les mots-clés en nylon et époxy (et d'autres mots-clés pour cette question) et mettez ces rangées dans un autre endroit (c.-à-d. feuille).

Merci d'avance!

Répondre

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 

Dans l'exemple ci-dessus, je créerais un filtre automatique sur A2: C6 avec la première rangée étant mes en-têtes. Dans chaque cellule en C3: C6 I aurait une formule semblable à (ce qui est de la C3):

=OR(NOT(ISERROR(SEARCH($B$1,A3))),NOT(ISERROR(SEARCH($B$1,B3)))) 

Maintenant, vous pouvez utiliser les outils de filtre automatique pour filtrer pour ceux où est vrai Trouvées.

0

Je vais montrer comment vous pouvez vérifier si une chaîne se trouve dans d'autres colonnes, en retournant un booléen. Ensuite, vous devrez décider comment gérer les cas positifs. Je crois que vous utiliserez un VLOOKUP ou quelque chose comme ça.

Veuillez remplacer; par ,. Je n'utilise pas les paramètres régionaux anglais ATM.

Vous pouvez combiner la fonction FIND et la fonction ISERROR pour trouver votre résultat. ISERROR renvoie un booléen et vous pouvez combiner plusieurs contrôles de colonne autant que vous le souhaitez.

Exemple:

Disons que vous avez les mots-clés de test dans les cellules C1 et D1, et la plage que vous avez fourni commence au-dessus à A2. Maintenant, nous pouvons ajouter à C2 un test pour vérifier si la chaîne Nylon existe dans A2, c'est-à-dire ISERROR(FIND(C1;$A$2)). Nous devons également vérifier si la chaîne Nylon existe en B2, puis ajouter la deuxième condition: AND(ISERROR(FIND(C1;$A$2));ISERROR(FIND(C1;$B$2)))

Comme nous testons si la fonction FIND a retourné une erreur ou non, cela signifie que notre fonction retournera false quand la chaîne a été trouvé. Pour être plus facile à comprendre, je crois que c'est préférable d'ajouter une condition NOT dans notre formule, puis dans le cas où la chaîne en C1 apparaît dans A2 ou B2, notre fonction retourne TRUE:

=NOT(AND(ISERROR(FIND(C1;$A$2));ISERROR(FIND(C1;$B$2)))) 

Ensuite, nous copions cette formule une cellule à droite pour tester contre la valeur D1, époxy.

Maintenant, qui est la structure de résultat:

          Nylon  Epoxy 
Nylon   |  Nylon wire  | TRUE | FALSE 
Cable   |  5mm metal cable | FALSE | FALSE 
Epoxy   |  some comment  | FALSE | TRUE 
Polyester  |  some comment  | FALSE | FALSE