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

In etwa so - (Programm, programmieren, Microsoft Excel)

3 Antworten

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.


Seymore 
Beitragsersteller
 27.06.2016, 14:03

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. 

Iamiam  27.06.2016, 14:45
@Seymore

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!


Iamiam  27.06.2016, 14:50
@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!

Iamiam  27.06.2016, 15:19
@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!

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.


 - (Programm, programmieren, Microsoft Excel)

Iamiam  27.06.2016, 15:04

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!

Müsste mit VBA gehen


Seymore 
Beitragsersteller
 27.06.2016, 14:07

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 

Iamiam  26.06.2016, 22:54

VBA, der mythische Weltenretter!

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