Herbers Excel-Forum - das Archiv

Schablone ... oder ähniches;)

Bild

Betrifft: Schablone ... oder ähniches;)
von: Christian

Geschrieben am: 12.12.2006 14:11:50
Hallo!!!
stehe vor einem kleinen Problem, da ich denke, dass diese Pro's sehr einfach lösen können.
Problem: Habe ein List mit über 500 Objekten, welche alle einen bestimmten Code haben (8stelliger Code); z.B. 12453133.
Jetzt möchte ich jedoch nach den Objekten suchen, deren Code bestimmten Kriterien entsprechen bzw. eine bestimmte Schablone besitzen.
z.B. eine Schablone: 12??3??? (in Worten: Ziffer eins ist "1"; Ziffer zwei ist "2"; Ziffer fünf ist "3")
Bezogen auf den obrigen Code oder auch Zahl: 12453133 würde dann ein JA oder 1 ausgegeben.
Wäre die Zahl z.B. 13332021 würde ein NEIN ausgegeben.
Habe - damit einfacher zu verstehen - noch ein XLS angehängt.
Freu' mich auf Eure Hilfe!!! Danke
https://www.herber.de/bbs/user/38906.xls
Bild

Betrifft: AW: Schablone ... oder ähniches;)
von: EtoPHG
Geschrieben am: 12.12.2006 14:45:08
Hallo Christian,
Deine Art von Suchen mit Platzhaltern geht nur in Text-Feldern.
Mit Autofilter gings in etwa so:
https://www.herber.de/bbs/user/38911.xls
Gruss Hansueli
Bild

Betrifft: AW: Schablone ... oder ähniches;)
von: Christian
Geschrieben am: 12.12.2006 14:51:39
vielen Dank für die Vorab-Info.
Über den Auto-Filter hab ich so auch schon erkannt...
aber würde es am liebsten über SVERWEIS lösen... gibt es da keine Möglichkeiten?
Bild

Betrifft: AW: Schablone ... oder ähniches;)
von: HermannZ

Geschrieben am: 12.12.2006 15:10:02
Hallo Christian;
geht auch mit Formel;
Beispiel;
Versuch
 AB
196 gesuchte Kombi.
197 12??5?
198124456ja
199135526nein
200193890nein
20112455133ja
202  
Formeln der Tabelle
B198 : =WENN(ISTFEHLER(SUCHEN($B$197;A198;1));"nein";"ja")
B199 : =WENN(ISTFEHLER(SUCHEN($B$197;A199;1));"nein";"ja")
B200 : =WENN(ISTFEHLER(SUCHEN($B$197;A200;1));"nein";"ja")
B201 : =WENN(ISTFEHLER(SUCHEN($B$197;A201;1));"nein";"ja")
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Gruß HermannZ
Bild

Betrifft: AW: Schablone ... oder ähniches;)
von: EtoPHG

Geschrieben am: 12.12.2006 15:38:19
Hallo Christian,
Die Routine von Heinz ist (sorry für das Wort) ein bissche primitiv, weil statisch.
Wenn Du diese in ein Modul einfügst, kannst Du PVERWEIS wie SVERWEIS benutzen. Im Suchkriterium gibst Du dein Muster mit ? als Platzhalter für 1 Stelle an.
Public
Function PVerweis(Suchkriterium As String, Matrix As Range, Optional Spaltenindex As Double = 0) As String
Application.Volatile
Dim cCell As Range
For Each cCell In Matrix
If cCell.Value Like Suchkriterium Then
PVerweis = cCell.Offset(0, Spaltenindex).Text
Exit Function
End If
Next
PVerweis = "#NV"
End Function

Gruss Hansueli
Bild

Betrifft: AW: Schablone ... oder ähniches;)
von: Christian
Geschrieben am: 12.12.2006 15:41:11
Ich nehme an, dass das wohl die "eleganteste" Lösung ist.
Kann/Könnte mir jemand das bereits in ein XLS einfügen bzw. kurz erläutern wie das Handling dafür ist?
Bild

Betrifft: AW: Schablone ... oder ähniches;)
von: EtoPHG
Geschrieben am: 12.12.2006 16:02:28
Hallo Christian,
Das säh dann so aus:
https://www.herber.de/bbs/user/38914.xls
Gruss Hansueli
Bild

Betrifft: AW: Schablone ... oder ähniches;)
von: Christian

Geschrieben am: 12.12.2006 16:23:47
Wunderbar.. ich glaube.. das dient genau meinem Zweck.
Nur noch - wie erwähnt - eine operative Frage: Meine XLS-Version hat die Funktion pVerweis noch nicht implementiert. Wie füge ich diese hinzu?
Worin besteht der Unterschied zwischen SVerweis und PVerweis?
Super Dank!
Bild

Betrifft: AW: Schablone ... oder ähniches;)
von: EtoPHG

Geschrieben am: 12.12.2006 16:37:06
Hallo Christian,
Wie füge ich diese hinzu?
In Deiner Arbeitsmappe:
Alt-F11 (Öffnet VBE)
Menu - Einfügen - Modul
Ins leere CodeFenster diesen Text kopieren:
Option Explicit
Public Function PVerweis(Suchkriterium As String, Matrix As Range, Optional Spaltenindex As Double = 0) As String
Application.Volatile
Dim cCell As Range
For Each cCell In Matrix
If cCell.Value Like Suchkriterium Then
PVerweis = cCell.Offset(0, Spaltenindex).Text
Exit Function
End If
Next
PVerweis = "#NV"
End Function

Ab dann kannst Du die Funktion =PVerweis(suchstring, bereich, [spaltenindex]) in jeder Zelle brauchen.
Worin besteht der Unterschied...
PVerweis, habe ich geschrieben, als UDF (user defined function) und ist gratis !!
SVerweis, ist von Microsoft...
Funktional besteht der Unterschied darin, dass Du bei Pverweis ein Muster mit Platzhaltern als Suchstring angeben kannst.
Gruss Hansueli
Bild

Betrifft: AW: Schablone ... oder ähniches;)
von: Christian

Geschrieben am: 12.12.2006 16:46:18
Oh ok.. super! Viel gelernt.
Noch eine Frage/Option. Ist es nun nur möglich, dass ich nach einem Textstring "12????" die Abfrage mache, oder kann ich auch dafür mehrere Werte; sprich eine matrix verwenden?
ps: das nächste Mal überweise ich auch;)
Nochmals vielen Dank!
Bild

Betrifft: AW: Schablone ... oder ähniches;)
von: EtoPHG

Geschrieben am: 12.12.2006 16:53:07
Hallo Christian,
einem Textstring "12????" ... eine matrix verwenden?
Im Moment nur für eine Suchkriterium (wie Sverweis).
Bei Eingang der ersten Mittel, wende ich mich gern einer Realisierung mit mehreren Suchkriterien ;-)
Gruss Hansueli
Bild

Betrifft: AW: Schablone ... oder ähnliches;)
von: haw

Geschrieben am: 12.12.2006 14:58:10
Hallo Christian,
ich würde es über eine eigene Funktion lösen:
Function CodeOK(Zahl As Long) As Boolean
Dim Z1%, Z2%, Z5%
Z1 = Mid(CStr(Zahl), 1, 1) * 1
Z2 = Mid(CStr(Zahl), 2, 1) * 1
Z5 = Mid(CStr(Zahl), 5, 1) * 1
If Z1 = 1 And Z2 = 2 And Z5 = 3 Then CodeOK = True
End Function

Gruß Heinz
Bild

Betrifft: AW: Schablone ... oder ähnliches;)
von: Christian
Geschrieben am: 12.12.2006 15:00:41
Hmm... klingt sehr, sehr gut...
nur wie füge ich diese ein?
Bild

Betrifft: AW: Schablone ... oder ähnliches;)
von: haw

Geschrieben am: 12.12.2006 15:11:58
Hallo Christian,
den Code in ein Standardmodul.
In der Tabelle ist die Funktion so zu verwenden, wie eine Standardfunktion.
z.B. ab A2 stehen deine Zahlen. Dann in B2: =CodeOK(A2) (und natürlich nach unten kopieren).
Als Ergebnis ergibt sich eben WAHR oder FALSCH.
Die Schablone muss natürlich nach Bedarf angepasst werden (wenn also nicht die erste, zweite und fünfte Zahl überprüft werden sollen, sondern andere)
Gruß Heinz
 Bild