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

Werte HERAUSfiltern

Forumthread: Werte HERAUSfiltern

Werte HERAUSfiltern
20.09.2025 16:45:16
EinheimischerMarinkäfer
Hi all,

ich versuche seit Tagen auf eine Lösung zu kommen, wie ich aus einer Spalte A mehrere Werte herausfiltern kann, sprich alles andere soll gefiltert sein bis auf entsprechende Werte.

Das Problem ist, dass von Woche zu Woche die unterschiedlichsten Einträge in Spalte A stehen können und ich nicht den Weg gehen kann im Makro anzugeben welche Werte alles ausgewählt sein sollen.

Tabellenblatt1
Spalte A, A1 Überschrift "Obst"
Einträge:
Apfel
Banane
Apfel
Ananas
Birne
Kokusnuss
Birne
Pflaume
Dattel
Wassermelone

Es soll herausgefiltert werden Apfel, Birne und Dattel.

Wie sähe hierzu ein entsprechender Code aus?
Anzeige

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Werte HERAUSfiltern
20.09.2025 17:21:21
RPP63
Moin!
Warum VBA?
 ABCDEFG
1ObstWert FilterWert Apfel
2Apfel1 Apfel1 Birne
3Banane2 Apfel3 Dattel
4Apfel3 Birne5  
5Ananas4 Birne7  
6Birne5 Dattel9  
7Kokusnuss6     
8Birne7     
9Pflaume8     
10Dattel9     
11Wassermelone10     

ZelleFormel
D2=LET(x;A2:A11;FILTER(A2:B11;(x=G1)+(x=G2)+(x=G3)))


Gruß Ralf
Anzeige
Ohne Formel, ohne VBA
20.09.2025 17:38:58
RPP63
Und dann gibt es ja seit Äonen den guten alten Spezialfilter:
Userbild
Spezialfilter mittels VBA
20.09.2025 18:20:08
RPP63
Wenn man das Ganze dann mittels VBA abbildet, wird der Code extrem schlank!
Grundlage:
 ABCDE
1ObstWert Obst 
2Apfel1 Apfel 
3Banane2 Kokosnuss 
4Apfel3 Pflaume 
5Dattel4 Dattel 
6Birne5   
7Kokusnuss6   
8Birne7   
9Pflaume8   
10Dattel9   
11Wassermelone10   


Makro:
Sub Spezialfilter()

Range("A1").CurrentRegion.AdvancedFilter _
Action:=xlFilterCopy, _
CriteriaRange:=Range("D1").CurrentRegion, _
CopyToRange:=Range("F1:G1"), Unique:=False
End Sub


Ergebnis:
 ABCDEFG
1ObstWert Obst ObstWert
2Apfel1 Apfel Apfel1
3Banane2 Kokosnuss Apfel3
4Apfel3 Pflaume Dattel4
5Dattel4 Dattel Pflaume8
6Birne5   Dattel9
7Kokusnuss6     
8Birne7     
9Pflaume8     
10Dattel9     
11Wassermelone10     


Das Ganze könnte man dann sogar mittels Worksheet_Change (Target in Columns("D")) automatisieren …
Anzeige
AW: Spezialfilter mittels VBA
21.09.2025 06:03:26
EinheimischerMarinkäfer
Danke an die Lösungsvorschläge. Sorry blicke hier mit der Forumstruktur nicht durch...

Warum VBA statt Excel? Das was ich vorhabe ist wesentlich komplexer und soll automatisiert werden :)
AW: Werte HERAUSfiltern
20.09.2025 17:25:57
Alwin Weisangler
Hallo,

einer der möglichen Wege via VBA:

Herauszufilternde Begriffe mit Komma als Trennung in C1.
Tabelle in Spalte A muss ein Listobjekt (formatierte Tabelle) sein.
ins Modul des Tabellenblattes:


Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i&, arrWerte(), arr
If Not Intersect(Target, Range("C1")) Is Nothing Then
arr = Split(Range("C1").Value, ",")
ListObjects(1).ShowAutoFilterDropDown = True
ListObjects(1).Range.AutoFilter Field:=1
If Range("C1").Value > "" Then
ListObjects(1).Range.AutoFilter Field:=1, Criteria1:=arr, Operator:= _
xlFilterValues
Else
ListObjects(1).Range.AutoFilter Field:=1
End If
ListObjects(1).ShowAutoFilterDropDown = False
End If
End Sub

https://www.herber.de/bbs/user/178938.xlsm

Gruß Uwe
Anzeige
AW: Werte HERAUSfiltern
20.09.2025 19:00:02
Marc
Warum nicht einfach Spalte A "Obst" mit Filter (Unter Daten, Filter) aktivieren,
dann kannst du auf das kleine Dropdown Zeichen klicken und das anzeigen lassen was du brauchst....

Userbild
AW: Werte HERAUSfiltern
21.09.2025 05:59:50
EinheimischerMarinkäfer
Hey,

ich habe es für mich lösen können. Ich füge zuerst eine Hilfsspalte ein, bei der gerprüft wird, welcher Inhalt vorhanden. Wenn der gesuchte dann = 1, wenn nicht dann = 2. Am Ende filter ich die Hilfsspalte nach 1 oder 2.
Anzeige
AW: Werte HERAUSfiltern
21.09.2025 10:53:22
RPP63
Sehr schwache Antwort für einen doch recht interessanten Thread!
Wie sieht denn die Formel in der (überflüssigen) Hilfsspalte aus?
Wie willst Du eine Dynamik mittels beliebig langer Suchliste implementieren?
Wo ist Dein ursprünglicher Wunsch mittels VBA?
Deine Datei zeigst Du nicht, weil …?

Egal, ich habe noch eine weitere dynamische Lösung:
Suchliste in G1:G10, kann aber nahezu beliebig erweitert werden.

Zunächst werden alle Datensätze angezeigt, die sich in der Suchliste befinden.
=FILTER(A2:B11;WENNFEHLER(FINDEN(A2:A11;TEXTKETTE(G1:G10));0);"no result")

 ABCDEFG
1ObstWert ObstWert Apfel
2Apfel1 Apfel1 Birne
3Banane2 Apfel3 Dattel
4Apfel3 Birne5  
5Ananas4 Birne7  
6Birne5 Dattel9  
7Kokosnuss6     
8Birne7     
9Pflaume8     
10Dattel9     
11Wassermelone10     

ZelleFormel
D2=FILTER(A2:B11;WENNFEHLER(FINDEN(A2:A11;TEXTKETTE(G1:G10));0);"no result")


Das Gegenteil, nämlich Anzeige aller Datensätze außer der Suchliste.
Hier wird lediglich mit NICHT() negiert.
=FILTER(A2:B11;NICHT(WENNFEHLER(FINDEN(A2:A11;TEXTKETTE(G1:G10));0));"no result")

 ABCDEFG
1ObstWert ObstWert Apfel
2Apfel1 Banane2 Birne
3Banane2 Ananas4 Dattel
4Apfel3 Kokosnuss6  
5Ananas4 Pflaume8  
6Birne5 Wassermelone10  
7Kokosnuss6     
8Birne7     
9Pflaume8     
10Dattel9     
11Wassermelone10     

ZelleFormel
D2=FILTER(A2:B11;NICHT(WENNFEHLER(FINDEN(A2:A11;TEXTKETTE(G1:G10));0));"no result")
Anzeige
AW: Werte HERAUSfiltern
21.09.2025 13:19:58
Eifeljoi 5
Hallo

Es gibt auch die Möglichkeit dies mit PQ zu lösen.
Allerdings keine Beispieldatei und Wunschergebnis die genauso aufgebaut ist wie die Originale, keine Lösung.
AW: Werte HERAUSfiltern
20.09.2025 17:30:08
Alwin Weisangler
Kommando zurück --> Sorry das war verkehrt herum. Die Änderung kommt gleich.

Gruß Uwe
AW: Werte HERAUSfiltern
20.09.2025 17:40:48
Alwin Weisangler
Änderung so:


Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i&, k&, arr()
If Not Intersect(Target, Range("C1")) Is Nothing Then
With ListObjects(1)
For i = 1 To .ListRows.Count
If InStr(1, Range("C1").Value, .DataBodyRange.Cells(i, 1), vbTextCompare) = 0 Then
k = k + 1
ReDim Preserve arr(1 To k)
arr(k) = .DataBodyRange.Cells(i, 1)
End If
Next i
.ShowAutoFilterDropDown = True
.Range.AutoFilter Field:=1
If Range("C1").Value > "" Then
.Range.AutoFilter Field:=1, Criteria1:=arr, Operator:= _
xlFilterValues
Else
.Range.AutoFilter Field:=1
End If
.ShowAutoFilterDropDown = False
End With
End If
End Sub


Gruß Uwe
Anzeige
AW: Werte HERAUSfiltern
20.09.2025 18:45:14
Alwin Weisangler
ohne Doppelte im Array:



Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i&, k&, arrWerte(), arr(), dic As Object, Z As Range
If Not Intersect(Target, Range("C1")) Is Nothing Then
Set dic = CreateObject("Scripting.Dictionary")
With ListObjects(1)
For Each Z In .DataBodyRange.Columns(1).Cells
If InStr(1, Range("C1"), Z.Value2, vbTextCompare) = 0 Then dic(Z.Value2) = 0
Next
arr = dic.keys
.ShowAutoFilterDropDown = True
.Range.AutoFilter Field:=1
If Range("C1").Value > "" Then
.Range.AutoFilter Field:=1, Criteria1:=arr, Operator:= _
xlFilterValues
Else
.Range.AutoFilter Field:=1
End If
.ShowAutoFilterDropDown = False
End With
End If
End Sub


Gruß Uwe
Anzeige
AW: Werte HERAUSfiltern
20.09.2025 18:56:07
Alwin Weisangler
@ Ralf,

mir stellt sich gerade die Frage, wie viele Begriffe der Filter vom Listobjects wohl möglich sind bis dieser nicht mehr will.
Da ist doch der Advanced Filter wohl die bessere Wahl.

Mal 'ne Frage zu Thema LET(). Was mir aufgefallen ist, dass diese Funktion wohl recht auf die Rechenleistung geht.
Liegt das an der Variablenverarbeitung?
Wie sind da deine Erfahrungen.

Gruß Uwe
Anzeige
AW: Werte HERAUSfiltern
20.09.2025 19:09:52
RPP63
Moin Uwe!
Ich muss jetzt weg, werde Dir die Fragen aber spätestens morgen früh beantworten.

Gruß Ralf
AW: Werte HERAUSfiltern
20.09.2025 23:36:06
Alwin Weisangler
Hallo Miteinander,

inzwischen habe ich rausgefunden, dass in O2024 bei 10.000 Begriffen im Filter des Listobjektes die Grenze liegt. Naja die wollen erst mal erreicht sein.
Ich denke mal, dass die Nutzung des Advanced Filters die bessere Variante ist.

Gruß Uwe
Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18