Excel 2010: Spezialfilter mit Abfrage, ob Zelle in einer Liste enthalten ist

Hallo,

ich möchte eine Tabelle filtern.

Die Tabelle hat 20 Spalten und unbekannt viele Zeilen (ändert sich wöchentlich).
Die Tabelle enthält Daten, die für unterschiedliche Klienten gefiltert werden müssen.
Ich möchte mittels eines Spezialfilters auf Klick auf einen Button die Tabelle in einem Schritt statt mehreren filtern, nach mehreren Kriterien.

Ich habe bereits geschafft, dass das Spezialfilter im Prinzip funktioniert. Die Tabelle wird gefiltert und das Ergebnis der Filterung in einem anderen Tabellenblatt angezeigt. Dieses kann ich dann weiterleiten an den jeweiligen Klienten.

Eins der Filterkriterien ist die Abfrage, ob in einer Zeile in Spalte 10 ein bestimmter Name aus einer Liste mit mehreren Namen steht. Die Filterung soll beispielsweise bewirken, dass „rot“, „grün“ und „blau“ als Elemente der Liste „Farbe“ erkannt werden und die gesamte Zeile dann nach Aktivieren des Filters angezeigt wird. Es soll also erreicht werden, dass die Filterung die Zeilen anzeigt, die „rot“, „grün“ und „blau“ enthalten, gleichzeitig mit den anderen einfacheren Filterkriterien des Spezialfilters.

Wie kann ich das machen? Bislang habe ich schon gefunden, dass ich mittels
=WENN(ISTZAHL(VERGLEICH(F27;Farbe;0));„JA“;„NEIN“) [das ist ein Beispiel, das ich benutzt habe, um festzustellen, um ein Name in einer Liste enthalten ist]
ermitteln kann, ob ein Wert (in F27) in der Liste „Farbe“ enthalten ist. Eine Zahl würde auf die Position des Namens in der Liste hinweisen. #NV würde bedeuten, der Name ist in der Liste nicht enthalten.

Wie muss ich das für die Tabelle machen?

Ich hoffe, es ist nachvollziehbar, was ich benötige.

Danke Euch und viele Grüße,
Crypto.

Hallo,

ich denke ich weiß was du möchtest aber ich verstehe gerade nicht wie du das versuchst.

So wie ich dich verstanden habe, hast du eine Liste, die mit dem Filter nach mehreren Kriterien gefiltert werden soll.
Deine Liste hat eine Überschriftenzeile und Zeilenweise Einträge, das ist im Filter der Listenbereich (Überschrift muss auch markiert werden). Für den Filter legst du eine Liste an mit genau den selben Überschriften, das ist dein Kriterienbereich (auch die Überschriftenzeile mitmarkieren).

Hier ein paar Beispiele für die Kriterien (ich gehe von zwei Spalten aus, „Farbe“ und „Wert“)

Farbe = Rot
Wert= leer
nur Einträge mit Farbe „Rot“ und beliebigem Wert

Farbe= Rot
Wert= 1000
nur Einträge mit Farbe „Rot“ und Wert „1000“

Farbe= leer
Wert= <=1000
nur Einträge mit beliebiger Farbe und Wert kleiner oder gleich „1000“

Farbe= <>Rot
Wert= leer
nur Einträge ungleich „Rot“ und beliebigem Wert

Erste Kriterienzeile:
Farbe = Rot
Wert= leer
Zweite Kriterienzeile:
Farbe= Grün
Wert = 1000
alle Einträge mit „Rot“ und beliebigem Wert und zusätzlich alle Einträge mit Farbe „Grün“ und Wert „1000“

Wenn du in einer Kriterienzeile mehrere Werte für die gleiche Spalte benötigst, kannst du noch weitere Spalten mit der gleichen Überschrift anlegen. Das sind dann z.B. drei Spalten: „Farbe“, „Wert“ und „Wert“ und ein Filter könnte dann so aussehen:

Farbe= Rot
Wert= >=1000
Wert= <2000
nur Einträge mit der Farbe „Rot“ und einem Wert größer „1000“ und gleichzeitig kleiner „2000“, allerdings ist der einzige Verwendungszweck der mir dafür einfällt, wie in dem Beispiel, ein Wertbereich.

Ich denke das sollte das Prinzip verständlich machen.
Damit erschöpft sich ersteinmal mein Wissen mit dieser Art Filter. Dass er für das nächste Tabellenblatt funktioniert habe ich jetzt z.B. noch nicht hingekriegt.

Leider habe ich nicht verstanden wozu du in dem Zusammenhang die Formel benötigst, das müsstest du noch erklären. Falls die Formel tatsächlich benötigt wird, kannst du alternativ auch folgende Formel benutzen, sie ist einfacher und liefert das selbe Ergebnis:

=WENN(ZÄHLENWENN(F27;Farbe)>0;"JA";"NEIN")

Wenn ich dich falsch verstanden habe musst du deine Frage neu formulieren.

Gruß
Tobias

Hallo Tobias,

erstmal vielen Dank für Deine Antwort, da muss ich mich auch erst noch genauer mit beschäftigen. Ich denke aber, im Grunde genommen hast Du beschrieben, wie ich vorgehen will.

Zu der Formel:

Mein ganz großes Problem ist, dass ich folgendes feststellen muss:

ist der Begriff in einer Zelle enthalten in einer Liste?

Beispiel: die Elemente „rot“, „blau“, „grün“ sind Elemente einer Liste namens „Farbe“.

Wenn also die auszuwertende Zelle den Wert „rot“ enthält, dann soll die Abfrage liefern „Ja, die Farbe ‚rot‘ ist in der Liste ‚Farbe‘ enthalten“.

Für eine ähnliche Abfrage, nur ohne Filterung, habe ich die Formel gebaut und ausprobiert. Es geht nicht darum, etwas zu zählen. Es geht darum zu sagen, ob „rot“ (oder ein anderer Wert) in der Liste „Farbe“ enthalten ist. Es ist nuir ein Beispiel, um zu erklären, auf welchem Wege ich bislang ermittelt habe, ob ein Wert in einer Liste enthalten ist.

Der Befehl „VERGLEICH()“ liefert einen Zahlenwert, der die Position innerhalb der Liste ergibt. Wenn es keinen Zahlenwert gibt, ist der Wert in der Liste nicht enthalten.
Die Erweiterung mit „ISTZAHL“ prüft dann ab, ob ein Zahlenwert zurückgeliefert wird (ob also der fragliche Wert in der Liste enthalten ist, und an welcher Position), oder ob NV#() zurückgeliefert wird, dann ist der Wert in der Liste nicht enthalten.
Die Erweiterung mit „WENN()“ liefert „JA“ zurück, wenn „ISTZAHL()“ einen Zahlenwert im Vergleich VERGLEICH() ermittelt hat, und „NEIN“, wenn es keinen Zahlenwert gibt. Das ist für die Filterung im Prinzip nicht wichtig.

Vielleicht wird es mit einem anderen Beispiel deutlicher:
Die Filterung soll herausfinden, ob in einer Zeile die Teile zu einem Auto oder einem Fahrrad stehen. Die Teile stehen in Listen.

Wenn also herauskommt "Teil ist in der Liste ‚Auto‘, dann soll am Ende die Zeile mit diesem Teil in ein anderes Tabellenblatt kopiert werden. Wenn herauskommt, das Teil ist in der Liste ‚Fahrrad‘, dann genau das gleiche, Kopieren in ein anderes Tabellenblatt.

Der Knackpunkt der Filterung ist für mich die Abfrage, ob ein Wert in einer benannten Liste steht.

Viele Grüsse,
Crypto.

Hallo,

mir ist schon klar wie deine Formel funktioniert, ich wollte dich nur auf eine alternative Möglichkeit hinweisen. Meine Formel ist etwas einfacher gehalten und vermeidet es Fehlermeldungen quasi als normale Rückgabewerte zu verwenden. Das mit den Fehlerwerten macht zwar für so eine simple Formel keinen Unterschied aber bevor man sich so etwas angewöhnt und es dann evtl. auch bei komplizierteren Formeln macht, bei denen dann tatsächliche Fehler evtl. kaschiert werden, würde ich das grundsätzlich vermeiden.

Die Funktion ZÄHLENWENN zählt, wie du richtig erkannt hast, wie oft das Gesuchte gefunden wird und liefert wie VERGLEICH einen Zahlenwert. Der Unterschied ist, dass immer eine Zahl zurückgegeben wird. Wenn der gesuchte Wert nicht in der Liste ist, wird entsprechend der Wert „0“ zurückgegeben, dadurch ist ISTZAHL unnötig. Für die Wahrheitsprüfung der Funktion WENN wird geprüft, ob die gezählte Zahl größer 0 ist und entsprechend wird „JA“ oder „NEIN“ ausgegeben.

Ich dachte es geht um eine Tabelle mit 20 Spalten, die gefiltert werden sollen. Das sollte mit dem Filter gehen.
Das Beispiel mit Fahrrad und Auto hört sich eher nach mehreren Tabellen, möglicherweise sogar auf verschiedenen Tabellenblättern, an. Außerdem verstehe ich das jetzt eher so, dass du nach einem einzigartigen Teil suchst, also z.B. ein Ersatzteil mit der Farbe „Rot“ und dem Wert „1000“ kann es nur einmal auf einem der Tabellenblätter geben und die Daten der entsprechende Zeile sollen ausgegeben werden. Je nach Struktur könnte ich mir das mit Formeln einfacher vorstellen.
In jedem Fall wäre eine Beispieldatei sinnvoll, in der ersichtlich ist, wie die Struktur aussieht und was genau passieren soll.

Gruß
Tobias