Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Filtern nach zwei Spalten - ODER-Verknüpfung

Filtern nach zwei Spalten - ODER-Verknüpfung
29.03.2016 10:41:31
Karin
Guten Morgen,
Ich habe ein Makro erstellt, dass eine Tabelle erstellt und verschiedene Reiter mit den notwendigen Daten befüllt.
Bei einem Reiter benötige ich einen Filter, der in SPalte 3 alle Werte anzeigt die das Wort "Tier" enthalten (egal an welcher Stelle) Oder in Spalte 5 das gleiche Wort enthalten (oder in beiden Spalten)
Das Problem beim normalen Filter ist ja, dass wenn ich in SPalte 3 und 5 nach "Tier" suche, es mir nur diese anzeigt, in denen beides gleichzeitig vorkommt.
Ich hoffe ihr versteht was ich meine.
Vielen Dank im Voraus
Karin

Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: filtere über eine Hilfsspalte ...
29.03.2016 11:16:13
...
Hallo Karin,
... in der Hilfsspalte ermittelst Du mit einer Formel, ob die ODER-Verknüpfung bzgl. Deiner Bedingungen in den entsprechenden Zeile der zwei Spalten eingehalten ist. Die Hilfsspalte filtertst Du dann einfach nach dessen Ergebnis.
Gruß Werner
.. , - ...

AW: Filtern nach zwei Spalten - ODER-Verknüpfung
29.03.2016 11:49:54
Karin
Guten Tag,
mit dem Spezialfilter tue ich mir extrem schwer. Zumal die Tabelle ja über ein Makro erstellt wird und bis Spalte 35 reicht.
Ist es vielleicht möglich, über VBA zu sagen:
Wenn in SPalte 3 oder SPalte 5 das Wort "Tier" enthalten ist (egal an welcher Stelle), dann, komplette Zeile (also alle anderen SPalten auch) beibehalten, ansonsten, komplette Zeile löschen
Das ganze soll erst ab Zeile 2 gelten, da sonst die Überschriften verloren gehen.
Das wäre für mich einfacher als ein Filter.
Gruß

Anzeige
AW: Filtern nach zwei Spalten - ODER-Verknüpfung
29.03.2016 12:03:09
Daniel
Hi Karin
ab Excel 2007 löst man das Problem "Zeilen löschen mit Bedingung" am besten über die Funktion Daten - Datentools - Duplikate entfernen
das geht dann konkret so:
1. denke dir eine Formel aus, welche alle Zeilen die gelöscht werden sollen mit 0 kennzeichnet und die die stehen bleiben sollen mit der Zeilennummer.
in deinem Fall könnte das die Formel sein:
=Wenn(IstZahl(Finden("Tier",C2&E2));Zeile();0)

schreibe diese Formel in einer Hifsspalte am Tabellenende von der 2. Zeile bis zur letzen befüllten
2. schriebe in die Zeile 1 der Hilfsspalte (Überschrift) ebenfalls die 0
3. wende auf die ganze Tabelle das Duplikate-Entfernen an, mit der Hilfsspalte als Kriterium und der Option "keine Überschrift" (keine Angst, die Überschriftenzeile wird trotzdem nicht gelöscht)
das ganze geht natürlich auch als Makro:
Sub ZeilenLöschen()
With ActiveSheet.UsedRange
With .Columns(.Columns.Count + 1)
.FormulaR1C1 = "=IF(ISNUMBER(FIND(""Tier"",RC3&RC5)),ROW(),0)"
.Cells(1, 1).Value = 0
.EntireRow.RemoveDuplicates .Column, xlNo
.ClearContents
End With
End With
End Sub
das Prinzip ist sozusagen eine Standardmethode zum Löschen von Zeilen mit Bedinung.
Wenn sich die Bedinung ändern sollten, brauchst du nur die Formel zu ändern, den Rest des Codes kannst du immer verwenden.
Gruß Daniel

Anzeige
AW: Filtern nach zwei Spalten - ODER-Verknüpfung
29.03.2016 14:45:39
Karin
Hallo Daniel,
Vielen Dank!
Aber betrifft das mein Anliegen?
Ich möchte ja, dass wenn in Spalte 3 und in Spalte 5 Tier vorkommt, die komplette Zeile beibehalten wird, nicht gelöscht.
Auch wenn in SPalte 3 zb "Haus Tier Baum" steht, soll die komplette Zeile bleiben.
Grüße
Karin

Anzeige
AW: Filtern nach zwei Spalten - ODER-Verknüpfung
29.03.2016 15:13:19
Daniel
ja, meine Antwort betrifft dein Anliegen
mein Code löscht alle Zeilen, bei denen weder in Spalte C noch in in Spalte E das Wort "Tier" vorkommt.
sobald in der Spalte C oder in der Spalte E der jeweiligen Zeile das Wort "Tier" auch als Teil des Textes steht, bleibt die Zeile stehen.
dh steht in Spalte C "Hund Katze Maus" und in Spalte E "Schwein Kuh Pferd" wird die Zeile gelöscht
steht in Spalte C jedoch "Hund Tier Maus", bleibt die Zeile stehen, egal was in Spalte E steht.
auch wenn in Spalte E dann "Schwein Tier Pferd" steht, bleibt die Zeile stehen, egal was in Spalte C steht.
Auch wenn in beiden Spalten "Tier" vorkommt (dh in Spalte C steht "Hund Tier Maus" und in Spalte E steht "Schwein Tier Pferd") bleibt die Zeile stehen.
nur wenn in WEDER in Spalte C NOCH in Spalte E das wort "Tier" innerhalb des Textes vorkommt, wird die Zeile gelöscht.
Gruß Daniel

Anzeige
AW: Filtern nach zwei Spalten - ODER-Verknüpfung
29.03.2016 15:51:11
KlausF
Hallo Karin,
Sub ZeilenLoeschen()
Dim strSearch As String
Dim txt1 As String
Dim txt2 As String
Dim i As Long
Dim lngLast As Long
lngLast = ActiveSheet.Range("C:E").Find("*", searchdirection:=xlPrevious).Row
strSearch = "Tier"
Application.ScreenUpdating = False
For i = lngLast To 2 Step -1
txt1 = Range("C" & i).Value
txt2 = Range("E" & i).Value
If InStr(1, txt1 & txt2, strSearch) > 0 Then
Else
Rows(i).EntireRow.Delete
End If
Next i
Application.ScreenUpdating = True
End Sub
Gruß
Klaus
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Filtern nach zwei Spalten mit ODER-Verknüpfung in Excel


Schritt-für-Schritt-Anleitung

Um in Excel mehrere Spalten zu filtern und eine ODER-Verknüpfung zu realisieren, kannst du folgende Schritte befolgen:

  1. Hilfsspalte erstellen:

    • Füge eine neue Hilfsspalte hinzu, um zu bestimmen, ob in Spalte 3 oder Spalte 5 das Wort "Tier" vorkommt.
    • Verwende die folgende Formel, um die Zeilen entsprechend zu kennzeichnen:
      =WENN(ODER(ISTZAHL(FINDEN("Tier",C2)),ISTZAHL(FINDEN("Tier",E2))),"Behalten","Löschen")
    • Ziehe die Formel nach unten, um sie auf alle relevanten Zeilen anzuwenden.
  2. Filtern:

    • Wende den Filter auf die Hilfsspalte an und filtere nur die Zeilen, die "Behalten" anzeigen.
  3. Daten löschen (optional):

    • Du kannst die Zeilen, die "Löschen" anzeigen, manuell entfernen.

Häufige Fehler und Lösungen

  • Problem: Der Filter zeigt nicht die erwarteten Ergebnisse.

    • Lösung: Stelle sicher, dass die Formel in der Hilfsspalte korrekt ist und die Zellen formatiert sind, um Text anzuzeigen.
  • Problem: Zeilen werden auch gelöscht, wenn das Wort "Tier" nur in einer der beiden Spalten vorkommt.

    • Lösung: Überprüfe die Formeln in der Hilfsspalte und stelle sicher, dass die ODER-Verknüpfung korrekt implementiert ist.

Alternative Methoden

  • Spezialfilter verwenden:

    • Du kannst den Spezialfilter in Excel nutzen, um gezielt nach "Tier" in mehreren Spalten zu filtern. Gehe dazu zu „Daten“ > „Erweiterte Filter“ und wähle die entsprechenden Kriterien aus.
  • VBA-Makro verwenden:

    • Wenn du mit VBA vertraut bist, kannst du ein Makro schreiben, das die Zeilen automatisch filtert. Hier ein Beispiel:
      Sub FilterMitVBA()
      Dim i As Long
      Dim lngLast As Long
      lngLast = Cells(Rows.Count, 3).End(xlUp).Row
      For i = lngLast To 2 Step -1
          If InStr(Cells(i, 3).Value, "Tier") = 0 And InStr(Cells(i, 5).Value, "Tier") = 0 Then
              Rows(i).EntireRow.Delete
          End If
      Next i
      End Sub

Praktische Beispiele

  • Beispiel 1: Angenommen, du hast in Spalte 3 den Text „Hund Tier Katze“ und in Spalte 5 „Tier Elefant“. Mit der oben genannten Formel bleiben beide Zeilen erhalten, da "Tier" in einer der beiden Spalten vorkommt.

  • Beispiel 2: Wenn du eine Tabelle mit verschiedenen Tieren hast und nur die Zeilen sehen möchtest, die das Wort "Tier" enthalten, kannst du die Hilfsspalte nutzen und die Filterfunktion anwenden.


Tipps für Profis

  • Nutze AutoFilter, um die Filteroptionen schnell zu ändern, ohne die Hilfsspalte manuell anpassen zu müssen.
  • Experimentiere mit VBA, um automatisierte Filterprozesse zu erstellen, die dir Zeit sparen.
  • Halte deine Datenbank sauber, indem du regelmäßig überflüssige Zeilen entfernst und deine Filtereinstellungen überprüfst.

FAQ: Häufige Fragen

1. Wie kann ich in Excel mehrere Spalten filtern?
Du kannst mehrere Spalten filtern, indem du eine Hilfsspalte erstellst, die die Bedingungen für jede Spalte überprüft, und dann nach dieser Hilfsspalte filterst.

2. Gibt es eine Möglichkeit, die Filterung zu automatisieren?
Ja, du kannst VBA verwenden, um die Filterung automatisch durchzuführen, basierend auf den Bedingungen, die du festlegst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige