Discussion:
Excel 2010: Filtern mit mehr als 2 Bedingungen und "enthält"
(zu alt für eine Antwort)
Ralf Brinkmann
2014-07-21 16:26:02 UTC
Permalink
Hallo Excel-Kenner!

Aus einer Tabelle mit rund 15.000 Datensätzen soll ich "mal eben" alle
herausfiltern, die folgende Bedingungen erfüllen:

Das Feld "Ort" soll *enthalten*

Wilhelm-Heinrich-von-Riehl-Straße
oder
Im alten Kleinboden
oder
Straße der Republik
oder
Richar-Wagner-Allee

UND

das Feld "Auftrag" soll *enthalten*

Schule
oder
Schulgebäude
oder
Nachbarschaftshaus.

*Enthalten* deshalb, weil in den jeweiligen Zellen noch mehr Text
enthalten ist.

Beim Autofilter wäre es einfach, aber da gehen nur zwei Bedingungen. Mit
dem Spezialfilter weiß ich nicht, wie ich das "enthalten" umsetzen kann.
Ebenso habe ich Probleme, dies in einer Hilfsspalte zu tun, die dann nur
WAHR/UNWAHR oder 1/0 ausspuckt. Wie macht man das am besten und
kombiniert diese ganzen Abfragen?

Gruß, Ralf
--
Windows 7x64
Opera 24.x Dev.
The Bat! Pro 6.4.6.5
Claus Busch
2014-07-21 16:47:43 UTC
Permalink
Hallo Ralf,
Post by Ralf Brinkmann
Aus einer Tabelle mit rund 15.000 Datensätzen soll ich "mal eben" alle
Das Feld "Ort" soll *enthalten*
Wilhelm-Heinrich-von-Riehl-Straße
oder
Im alten Kleinboden
oder
Straße der Republik
oder
Richar-Wagner-Allee
UND
das Feld "Auftrag" soll *enthalten*
Schule
oder
Schulgebäude
oder
Nachbarschaftshaus.
*Enthalten* deshalb, weil in den jeweiligen Zellen noch mehr Text
enthalten ist.
schau mal hier:
https://onedrive.live.com/?cid=9378AAB6121822A3&id=9378AAB6121822A3%21326#cid=9378AAB6121822A3&id=9378AAB6121822A3%21326
nach "Spezialfilter"
Den Spezialfilter kannst du noch mit VBA automatisieren, wenn du eine
Änderung im Kriterienbereich vornimmst.


Mit freundlichen Grüßen
Claus
--
Vista Ultimate / Windows7
Office 2007 Ultimate / 2010 Professional
Ralf Brinkmann
2014-07-21 19:11:42 UTC
Permalink
Hallo Claus!
Post by Claus Busch
https://onedrive.live.com/?cid=9378AAB6121822A3&id=9378AAB6121822A3%21326#cid=9378AAB6121822A3&id=9378AAB6121822A3%21326
nach "Spezialfilter"
Vielen Dank erstmal. Sidn die beiden Tabellenblätter einfach zwei
verschiedene Möglichkeiten oder sind die beide erforderlich? Ich blicke
nämlich noch nicht so ganz durch. Ich muss das morgen mal an meine
Arbeitsstelle schicken und dort im Echtbetrieb ausprobieren.

Und eine Frage zum Blatt "Hilfsspalte". Da stehen dann so Sachen drin
wie

"=UND(ODER(B2={"Wilhelm-Heinrich-von-Riehl-Straße";"Im alten
Kleinboden";"Straße der Republik";"Richard-Wagner-Allee"})..."

und so weiter. Kann es sein, dass damit abgefragt wird, dass der Inhalt
von B2 genau den einzelnen Möglichkeiten entspricht oder lese ich das
falsch und es heißt, dass der jeweilige Text irgendwo in Zelle B2
enthalten sein darf? Das ist es nämlich, was ich brauche. Ich vermute,
so etwas ist in dem zweiten Teil der Formel

"...;ANZAHL(FINDEN({"Schul";"Nachbar"};D2))>0)"

enthalten.

Gruß, Ralf
--
Windows 7x64
Opera 24.x Dev.
The Bat! Pro 6.4.6.5
Claus Busch
2014-07-21 19:22:53 UTC
Permalink
Hallo Ralf,
Post by Ralf Brinkmann
Vielen Dank erstmal. Sidn die beiden Tabellenblätter einfach zwei
verschiedene Möglichkeiten oder sind die beide erforderlich? Ich blicke
nämlich noch nicht so ganz durch. Ich muss das morgen mal an meine
Arbeitsstelle schicken und dort im Echtbetrieb ausprobieren.
das sind zwei verschiedene Lösungsmöglichkeiten. Die Art der Lösung ist
im Tabellennamen ersichtlich.
Post by Ralf Brinkmann
Und eine Frage zum Blatt "Hilfsspalte". Da stehen dann so Sachen drin
wie
"=UND(ODER(B2={"Wilhelm-Heinrich-von-Riehl-Straße";"Im alten
Kleinboden";"Straße der Republik";"Richard-Wagner-Allee"})..."
Mit diesem ODER und den Bezeichnungen in den geschweiften Klammern
werden die exakten Werte gesucht.
Post by Ralf Brinkmann
"...;ANZAHL(FINDEN({"Schul";"Nachbar"};D2))>0)"
Mit Anzahl(Finden(... werden die Substrings (also enthalten) gesucht.
Deswegen sind diese beiden Funktionen UND-verknüpft. Es werden die
exakten Straßennamen UND die enthaltenen Gebäudenamen gesucht. Du musst
dann nur die Hilfsspalte nach WAHR sortieren.

Ich mag den Spezialfilter, denn den kann man mit VBA automatisieren,
wenn man das Worksheet_Change-Event auf den Kriterienbereich anwendet.

Wenn du morgen mit dem Umsetzen nicht klar kommst, melde dich nochmals.


Mit freundlichen Grüßen
Claus
--
Vista Ultimate / Windows7
Office 2007 Ultimate / 2010 Professional
Claus Busch
2014-07-21 19:43:00 UTC
Permalink
Hallo Ralf,
Post by Claus Busch
das sind zwei verschiedene Lösungsmöglichkeiten. Die Art der Lösung ist
im Tabellennamen ersichtlich.
ich habe noch ein weiteres Blatt mit einem Spezialfilter eingefügt.
Vielleicht ist in dieser Kriterienanordnung die Arbeit mit dem
Spezialfilter leichter ersichtlich.


Mit freundlichen Grüßen
Claus
--
Vista Ultimate / Windows7
Office 2007 Ultimate / 2010 Professional
Claus Busch
2014-07-21 20:10:18 UTC
Permalink
Hallo Ralf,
Post by Claus Busch
ich habe noch ein weiteres Blatt mit einem Spezialfilter eingefügt.
Vielleicht ist in dieser Kriterienanordnung die Arbeit mit dem
Spezialfilter leichter ersichtlich.
ich habe auch noch ein Blatt mit einer VBA-Lösung eingefügt.


Mit freundlichen Grüßen
Claus
--
Vista Ultimate / Windows7
Office 2007 Ultimate / 2010 Professional
Ralf Brinkmann
2014-07-21 20:40:01 UTC
Permalink
Hallo Claus!
Post by Claus Busch
Post by Claus Busch
ich habe noch ein weiteres Blatt mit einem Spezialfilter eingefügt.
Vielleicht ist in dieser Kriterienanordnung die Arbeit mit dem
Spezialfilter leichter ersichtlich.
ich habe auch noch ein Blatt mit einer VBA-Lösung eingefügt.
Du scheinst wirklich viel Zeit zu haben. :-) Großartig. Jetzt muss ich
das nur noch alles verstehen. Mal morgen sehen.

Gruß, Ralf
--
Windows 7x64
Opera 24.x Dev.
The Bat! Pro 6.5
Claus Busch
2014-07-21 22:42:17 UTC
Permalink
Hallo Ralf,
Post by Ralf Brinkmann
Du scheinst wirklich viel Zeit zu haben. :-) Großartig. Jetzt muss ich
das nur noch alles verstehen. Mal morgen sehen.
manchmal macht es einfach Spaß zu basteln ;-)

Ich habe noch eine weitere VBA-Lösung mit Array eingefügt. Da wird alles
in Arrays gemacht, d.h. es läuft alles im Speicher ab und es wird nicht
auf das Blatt zugegriffen. Deshalb sollte diese Lösung bei großem
Datenbestand schneller sein.
Das letzte Blatt ist dann ein Autofilter mit VBA.


Mit freundlichen Grüßen
Claus
--
Vista Ultimate / Windows7
Office 2007 Ultimate / 2010 Professional
Ralf Brinkmann
2014-07-23 17:26:27 UTC
Permalink
Lieber Claus!

Hat leider einen Tag länger gedauert.
Post by Claus Busch
Post by Ralf Brinkmann
"...;ANZAHL(FINDEN({"Schul";"Nachbar"};D2))>0)"
Mit Anzahl(Finden(... werden die Substrings (also enthalten) gesucht.
Deswegen sind diese beiden Funktionen UND-verknüpft. Es werden die
exakten Straßennamen UND die enthaltenen Gebäudenamen gesucht. Du musst
dann nur die Hilfsspalte nach WAHR sortieren.
Diese Version war letztlich das Werkzeug meiner Wahl. Ich habe mehrere
dieser Strings miteinander verknüpft, so dass am Ende

=UND(ANZAHL(FINDEN({"Schule";"Schulg";"Nachbarschaftshaus"};D2));ANZAHL(FINDEN({"Riehlstraße";"Richard-Wagner-Allee";"Im
alten Kleinboden";"Straße der Republik"};K2)))

herauskam. Das macht die Datei zwar größer, aber es arbeitet sehr
effektiv.

Du hast mich allerdings damit, ohne es zu wollen, ganz schön irritiert.
Ich habe die geschweiften Klammern gesehen und erstmal alles gewälzt,
was ich über Matrixformeln finden konnte. :-) Ich dachte "Verdammt
nochmal, wie hat der blos diese geschweiften Klammern an diese Stelle
bekommen!?"

Bis ich mich erinnert habe, dass ich die schon mal woanders benutzt habe
und sie dann einfach händisch eingegeben habe...
Post by Claus Busch
Ich mag den Spezialfilter
Den hätte ich gerne auch gemocht und ich bin froh, dass Du mir noch ein
paar Beispiele mitgeliefert hast, damit ich mal sehen kann, wie die UND-
und ODER-Bedingungen miteinander verknüpft werden können. Allerdings
musste ich hier ausdrücklich die Filtermöglichkeit "enthält" anwenden,
da in den Datenfeldern Postleitzahl, Ort, Straße, Hausnummer und oft
noch zusätzliche, freitextliche Bezeichnungen hintereinander, nur durch
Leerzeichen getrennt, aufgeführt sind. Das ist nicht auf meinem Mist
gewachsen, sondern entsteht durch eine Exportfunktion eines anderen
Programms.

, denn den kann man mit VBA automatisieren,

Das geht sicher sehr schnell, aber ich wollte etwas, das mir logisch und
schnell nachvollziehbar erscheint, so dass ich es auch in zwei Jahren
noch erkenne und das Wissen weitervermitteln kann.
Post by Claus Busch
Wenn du morgen mit dem Umsetzen nicht klar kommst, melde dich nochmals.
Hiermit sollst Du wenigstens eine Rückmeldung erhalten haben. Vielen
Dank nochmal!

Gruß, Ralf
--
Windows 7x64
Opera 24.x Dev.
The Bat! Pro 6.5
Claus Busch
2014-07-23 17:59:01 UTC
Permalink
Hallo Ralf,
Post by Ralf Brinkmann
Diese Version war letztlich das Werkzeug meiner Wahl. Ich habe mehrere
dieser Strings miteinander verknüpft, so dass am Ende
danke für die Rückmeldung.
Ich habe derweil die Datei noch etwas ausgebaut und es ist jetzt auch
ein Autofilter dabei.
Vielleicht findest du darin doch noch etwas, was die Datei nicht so
aufbläht und auch etwas schneller ist ;-)


Mit freundlichen Grüßen
Claus
--
Vista Ultimate / Windows7
Office 2007 Ultimate / 2010 Professional
Claus Busch
2014-07-23 18:06:22 UTC
Permalink
Hallo nochmals,
Post by Ralf Brinkmann
Den hätte ich gerne auch gemocht und ich bin froh, dass Du mir noch ein
paar Beispiele mitgeliefert hast, damit ich mal sehen kann, wie die UND-
und ODER-Bedingungen miteinander verknüpft werden können. Allerdings
musste ich hier ausdrücklich die Filtermöglichkeit "enthält" anwenden,
da in den Datenfeldern Postleitzahl, Ort, Straße, Hausnummer und oft
noch zusätzliche, freitextliche Bezeichnungen hintereinander, nur durch
Leerzeichen getrennt, aufgeführt sind. Das ist nicht auf meinem Mist
gewachsen, sondern entsteht durch eine Exportfunktion eines anderen
Programms.
das geht aber doch sehr gut mit dem Spezialfilter. Wenn du dort z.B.
"Schul" eingibst, wird sowohl Schule und Schulgebäude als Substrings
gefunden. Das funktioniert wie "enthält"


Mit freundlichen Grüßen
Claus
--
Vista Ultimate / Windows7
Office 2007 Ultimate / 2010 Professional
Ralf Brinkmann
2014-07-23 19:36:14 UTC
Permalink
Hallo Claus!
Post by Claus Busch
Post by Ralf Brinkmann
da in den Datenfeldern Postleitzahl, Ort, Straße, Hausnummer und oft
noch zusätzliche, freitextliche Bezeichnungen hintereinander, nur durch
Leerzeichen getrennt, aufgeführt sind.
das geht aber doch sehr gut mit dem Spezialfilter. Wenn du dort z.B.
"Schul" eingibst, wird sowohl Schule und Schulgebäude als Substrings
gefunden. Das funktioniert wie "enthält"
Echt? Dann muss ich mir das nochmal genauer ansehen. Bei meinen
kläglichen Versuchen habe ich das nicht hingekriegt. Aber ich will das
unbedingt lernen.

Gruß, Ralf
--
Windows 7x64
Opera 24.x Dev.
The Bat! Pro 6.5
Claus Busch
2014-07-23 19:58:24 UTC
Permalink
Hallo nochmals,
Post by Ralf Brinkmann
Echt? Dann muss ich mir das nochmal genauer ansehen. Bei meinen
kläglichen Versuchen habe ich das nicht hingekriegt. Aber ich will das
unbedingt lernen.
mit Schul findest du alles was Schul enthält. Wenn du genau nach Schul
suchen möchtest, musst du "="Schul verwenden.
Du kannst mit dem Spezialfilter auch nach ungleich filtern, z.B. alle
die NICHT Schul enthalten mit:
<>Schul
Oder du suchst nach leeren Zellen mit = oder nach allen nicht leeren
Zellen mit <>


Mit freundlichen Grüßen
Claus
--
Vista Ultimate / Windows7
Office 2007 Ultimate / 2010 Professional
Claus Busch
2014-07-23 20:03:46 UTC
Permalink
Und noch ein Mal,
Post by Claus Busch
mit Schul findest du alles was Schul enthält. Wenn du genau nach Schul
suchen möchtest, musst du "="Schul verwenden.
Fehler! Sollte ="=Schul" heißen.

Schau mal hier rein, da ist es ganz gut erklärt:
http://office.microsoft.com/de-de/excel-help/filtern-mit-erweiterten-kriterien-HP010073942.aspx


Mit freundlichen Grüßen
Claus
--
Vista Ultimate / Windows7
Office 2007 Ultimate / 2010 Professional
Lesen Sie weiter auf narkive:
Loading...