/ / Wybierz „nie” na oddzielnym arkuszu - excel

Wybierz „nie” na oddzielnym arkuszu - excel

Chcę wybrać „nie” na oddzielnym arkuszu za pomocą vlookup, ale nie mogę go uruchomić.

Oto przykład na pierwszym arkuszu:

1 Tak Kawa 2 Bez herbaty 3 Bez mleka 4 Tak Woda 5 Tak Sok

Na następnym arkuszu powinien pokazywać:

1 herbata 2 Mleko

Odpowiedzi:

0 dla odpowiedzi № 1

Nie wiem, czy Vlookup będzie w stanie to zrobićchcesz. Ponieważ będziesz szukał „Nie”, w zakresie z wieloma „Nie”, vLookup będzie zwracać tę samą wartość wielokrotnie. , więc oto rozwiązanie VBA.

Uwaga: Zakładam, że „Tak” i „Nie” znajdują się w kolumnie A, a typ napoju znajduje się w kolumnie B, podobnie jak:

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

Kod:

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

Czy liczby podane w przykładzie są rzeczywiście w danych, czy jest to wiersz?


0 dla odpowiedzi nr 2

Oto rozwiązanie bez VBA. Należy zauważyć, że używa to formuł tablicowych, które należy potwierdzić, naciskając klawisze CTRL + SHIFT + ENTER za każdym razem, gdy komórka jest modyfikowana, zamiast tylko ENTER. Umieść kolumnę „tak” / „nie” z A1: A6, a kolumnę napoju z B1: B6. Umieść kolumnę z D1: D6, która liczy od 1 do 6.

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

Po naciśnięciu CTRL + SHIFT + ENTER, skopiuj dowiersze poniżej. Działa to, patrząc na każde możliwe trafienie w kolumnie A. Gdzie kolumna A = „nie” w tym wierszu, daje numer wiersza funkcji MAŁE. SMALL pobiera tablicę liczb i wypluwa tę, która jest n-tą najmniejszą. Więc MAŁA (LISTA, 2) daje drugą najmniejszą pozycję na liście. Następnie możesz nadać ten numer wierszowi funkcji Index, która pobiera kolumnę B i wypluwa wartość z podanego wiersza.

Nie zalecam używania tego bez jego zrozumienia; nie polecam go w ogóle, jeśli nie znasz funkcji Array.