
Ich lade jede Woche einen Bericht mit 8 Datenspalten in eine Tabelle herunter. Die Datenmenge ändert sich jede Woche zeilenweise (eine Woche kann 40 Zeilen haben, die nächste 100, aber nicht mehr als 150). Die Datenüberschriften bleiben gleich.
Ich muss in der Lage sein, alle Daten in einer Zeile, in der „HOT: Must Cover“ in Spalte B erscheint, automatisch in einer identischen Tabelle auf einem anderen Blatt anzuzeigen/anzualysieren. Würde ich irgendwie eine SVERWEIS-Funktion zusammen mit =WENN verwenden?
Beispieltabelle in Blatt 1:
Antwort1
Sie haben beispielsweise die Möglichkeit, die Filteroption in Excel zu verwenden und sie dann alphabetisch in Spalte B zu sortieren. Wenn Sie sie wirklich auf einem separaten Blatt benötigen, können Sie sie kopieren und in das nächste Blatt einfügen (da sie durch die Sortierung alle zusammengefasst werden).
Alternativ müssten Sie ein Makro schreiben, das Spalte B in jeder Zeile liest und die Zeile kopiert, wenn der Inhalt „Hot: Must Cover“ ist.
Etwas in dieser Art:
Dim i as Integer
Dim j as Integer
i = 0
j = 0
Do While Cells(i, 2).value != ""
if Cells(i, 2).Value == "Hot: Must Cover" Then
Worksheets("Sheet1").Range(Cells(j, 0), Cells(j, 7).Value = Worksheets("Sheet1").Range(Cells(i, 0), Cells(i, 7).Value
j = j + 1
End if
i=i+1
loop
Antwort2
VLOOKUP
Ich denke, dass dies mit (oder einer anderen Suchfunktion) schwierig zu bewerkstelligen wäre . Betrachten Sie diese VBA-Lösung:
Sub test
Dim ws1 As Worksheet, ws2 As Worksheet
Dim j As Integer
Set ws1 = Worksheets(1)
Set ws2 = Worksheets(2)
j = 1
For i = 2 To (ws1.Range("A1").ListObject.DataBodyRange.Count + 1)
If ws1.Range("B" & i).Value = "HOT: Must Cover" Then
ws1.Range("A" & i & ", G" & i).Copy
ws2.Range("A" & j).PasteSpecial xlPasteValues
j = j + 1
End If
Next i
End Sub