/ / Sélectionnez le «non» sur une feuille séparée - Excel

Sélectionnez le «non» sur une feuille séparée - Excel

Je veux sélectionner le "non" sur une feuille séparée avec vlookup, mais je ne peux pas le faire fonctionner.

Voici l'exemple de la première feuille:

1 Oui Café 2 Pas de thé 3 Pas de lait 4 Oui Eau 5 Oui jus

Sur la feuille suivante, il devrait montrer ce qui suit:

1 thé 2 Lait

Réponses:

0 pour la réponse № 1

Je ne sais pas que Vlookup sera capable de faire quoitu veux. Puisque vous "recherchez" non ", dans une plage avec plusieurs" non ", vLookup retournera la même valeur encore et encore. Il y a probablement une solution avec une équation, mais je ne suis pas très bien avec ceux , alors voici "une solution VBA.

Remarque: je suppose que "Oui" et "Non" sont dans la colonne A, et le type de boisson est dans la colonne B, semblable à:

   A       B
1 Yes     Milk
2 No      Water
3 No      Tea
4 Yes     Juice

Code:

Sub Move_NO_Rows()
Dim rawWS As Worksheet, noWS As Worksheet
Dim yesNoRange As Range, cel As Range
Dim lastRow As Integer, noLastRow As Integer
Dim yesOrNo As String

yesOrNo = "No" "If you want to search for the "Yes" rows instead, just change this variable

Set rawWS = ActiveSheet
Set noWS = Sheets.Add
noWS.Name = "No Types"

"Since we added a new sheet, the starting row for your "No" rows is 1
noLastRow = 1

With rawWS
lastRow = .UsedRange.Rows.Count
Set yesNoRange = .Range(.Cells(1, 1), .Cells(lastRow, 1))
For Each cel In yesNoRange
If cel.Value = yesOrNo Then
noWS.Range(noWS.Cells(noLastRow, 1), noWS.Cells(noLastRow, 2)).Value = .Range(.Cells(cel.Row, 1), .Cells(cel.Row, 2)).Value
noLastRow = noLastRow + 1
End If
Next cel
End With

End Sub

Les chiffres que vous donnez dans votre exemple sont-ils réellement dans les données, ou est-ce la ligne?


0 pour la réponse № 2

Voici une solution non VBA. Notez que cela utilise des formules matricielles, qui doivent être confirmées en appuyant sur CTRL + MAJ + ENTRÉE chaque fois que la cellule est modifiée, au lieu de simplement ENTRÉE. Mettez votre colonne «oui» / «non» de A1: A6 et votre colonne de boissons de B1: B6. Mettez une colonne de D1: D6 qui compte juste de 1 à 6.

=IFERROR(INDEX($B$1:$B$6,SMALL(IF($A$1:$A$6="no",ROW($A$1:$A$6),""),D1)),"")

Après avoir appuyé sur CTRL + MAJ + ENTRÉE, copiez vers le bas pourles lignes ci-dessous. Cela fonctionne en regardant chaque hit possible dans la colonne A. Lorsque la colonne A = "non" dans cette ligne, cela donne le numéro de ligne à la fonction SMALL. SMALL prend un tableau de nombres et recrache celui qui est le nième plus petit. Ainsi, SMALL (LISTE, 2) donne le 2e plus petit élément de la liste. Vous pouvez ensuite donner ce numéro de ligne à la fonction Index, qui prend la colonne B et crache la valeur dans la ligne donnée.

Je ne vous recommande pas de l'utiliser sans le comprendre, je ne vous recommande pas de l'utiliser du tout si vous n'êtes pas familier avec les fonctions de la baie.