Frage von Seymore, 146

Excel: Kann ich in Excel eine "komplexere" Suchfunktion einbauen?

Hi,

ich habe eine Exceltabelle, diese ist recht gut mit Datensätzen gefüllt. Ab und zu brauche ich einen bestimmten Datensatz, deswegen möchte ich ein extra Blatt anlegen, das wie ein Filter funktioniert. Ich möchte da irgendeinen Wert eingeben. Sowas wie Name, Ort, ganz egal, irgendeinen Wert, der in der Tabelle auf dem anderen Blatt auftaucht und dann sollen mir in der Maske nur Datensätze angezeigt werden, die diesen Wert enthalten. Geht sowas?

Expertenantwort
von Iamiam, Community-Experte für Excel, 110

soll da in einer ganzen Zeile nach dem Wert gesucht werden oder nur in einer bestimmten Spalte? Und wieviele gleiche Datensätze erwartest Du?

Es geht wahrscheinlich mit einer Matrixformel (viel schneller als VBA-Makro und ohne störende Warnungen), aber dazu müsste ich ein wenig mehr über die Struktur der Tabelle erfahren.

Mit einem einfachen Vergleich("*gesuchterDatensatzTEIL*";Spalte;0) kannst Du die Zeile der ersten Findung bekommen, für mehrere wirds erheblich komplizierter. (die * sind wildcards, da kann davor und dahinter beliebiges kommen, also zB mit "*IBM*" bekommst Du auch Schreibmaschine.

Versuche aber vorher, ob Dir nicht der FIND-Dialog (Strg+f) mit der Option ALLE anzeigen schon ausreicht! (ein bisschen damit rumspielen!)

Ansonsten liegt noch die Hilfskonstruktion einer Hilfsspalte mit &-Verknüpfung der infragekommenden Spalten nahe:

Spalte vor A einfügen, da rein die Formel A1: =B1&C1&D1... und runterziehen,

da drin kannst du dann suchen mit Vergleich oder SVerweis.

Kommentar von Seymore ,

Also sagen wir die Tabelle hat 1000 Zeilen mit Datensätzen gefüllt. Ich möchte in der Maske irgendetwas eingeben können z.b. wahllos die drei Buchstaben "urg", dann sollen alle Datensätze, die irgendwo in irgendeiner Spalte diese Zeichen enthalten aufgelistet werden. Im Optimalfall genau so formatiert, wie die Tabelle selbst. 

Ich gebe also in das Suchfeld "urg" ein und erhalte Datensätze, welche in der Spalte "Ort", die Orte: Hamburg, oder Flensburg z.B.. enhalten.
UND auch welche in der Spalte Name z.B. Burghardt, oder Turgoff, oder was auch immer haben. 

Geht sowas? Ich meine, das ist ja eine ganz normale Sufu, bloß weiß ich halt nicht, wie man sowas programmiert und dann auch noch so, dass Excel mir die gefundenen Datensätze in der selben Formatierung ausgibt. 

Man könnte auch sagen, er soll alle Datensätze aus der Anzeige löschen, die NICHT die eingegebenen Zeichen enthalten. 

Es ist halt schöner und praktischer, wenn man dafür eine Maske hat, aber ich versuche dennoch über Strg-F das zu machen. 

Kommentar von Iamiam ,

Willst Du VBA lernen oder eine xl-Lösung? Falls Letzteres, dann obiges nochmal ausführlich:

Füge vor Spalte A eine neue Spalte ein. Schreib da in A1:

=B1&" "&C1&" "&.....R1

Zieh diese Formel runter über den gesamten auszuwertenden Bereich.

A1 markieren, Icon Sortieren/Filtern, Filtern, (Autofilter)

Knopf drücken, Textfilter wöhlen, Enthält

dann Deinen Begriff eingeben:

Alle anderen werden ausgeblendet!


Kommentar von Iamiam ,

das Leerzeichen zwischen den Zellinhalten brauchst Du, damit nicht zwei Zellinhalte aneinandergehängt Dir den Suchbegriff fälschlich anzeigen können: "Korrektur"&"Gestaltung" enthalten zusammen auch "urg"!

Die Spalte A kannst du übrigens schmal machen, das funktioniert trotzdem. Oder als Spalte nach weit rechts schieben:

Die gesamten Zeilen werden mit ausgeblendet, ginge in einem Spreadsheet gar nicht anders!

Kommentar von Iamiam ,

lese gerade "in einem extra Blatt" Das beißt sich mit "in derselben Formatierung". Da bräuchte man dann wirklich VBA.

Du kannst aber die gefundenen Zeilen gesammelt kopieren und in ein anderes Blatt einfügen, anscheinend (und sinnvollerweise) werden da Formeln zu Werten umgesetzt.

PS: schreib übrigens nicht programmieren, sondern Formeln anlegen oder sowas, sonst meint beim Titel der Frage schon jeder, es geht um VBA!

Expertenantwort
von Ninombre, Community-Experte für Excel, 83

Ich würde es über den normalen Autofilter mit einer Hilfsspalte lösen.

Also neue Spalte anlegen: bei meinem Beispiel in D.
=Zählenwenn(A2:C2;"*ung*") und bis zum Ende runterkopieren. Das ermittelt pro Zeile die Anzahl der Treffer mit *ung* -> ung, weil ich dein Beispiel mit urg nicht richtig gelesen habe. Bleibt vom Prinzip her gleich ;-)

Autofilter auf die Hilfsspalte: Anzahl >=1 liefert alle Zeilen in denen in irgendeiner Spalte der Suchbegriff als Teil auftaucht.


Kommentar von Iamiam ,

so gehts auch, wobei man das ung auch in eine eigene (Masken-)Zelle schreiben kann, zB S1, dann
=Zählenwenn(A2:C2;"*"&$S$1&"*")

Die Syntax hat sich mal geändert, früher musste noch ein = NACH dem ersten Gänsefüßchen mit rein, war sehr verwirrend, hat xl offensichtlich und gottseidank korrigiert!

Antwort
von Tobihogh, 87

Müsste mit VBA gehen

Kommentar von Iamiam ,

VBA, der mythische Weltenretter!

(hab ich doch auch schon mal gehört, dass da alles geht, was ich mit xl allein nicht hinkriege!)

Kommentar von Suboptimierer ,

Willst du Ponyreiten lernen? → Müsste mit VBA gehen. ^^

Kommentar von Seymore ,

Das ist toll, dass das geht. Meine nächste Frage ist dann, wer baut mir das fix zusammen. Ich will mich dafür nicht extra in VBA Programmierung einarbeiten. Ich will einfach nur eine billige Sufu in meiner Tabelle :D 

Keine passende Antwort gefunden?

Fragen Sie die Community