appache
Goto Top

sverweis

hallo

mit sverweis kann ich ja tabellen durchsuchen und sverweis spruckt mir den erstgefundenen wert in der tabelle aus. gibt es ein befehl der mir nicht nur den erstgefundenen wert aufzeigt sondern auch weitersucht und mir alle zutreffenden werte ausgibt?
danke im vorraus

Content-ID: 24554

Url: https://administrator.de/contentid/24554

Ausgedruckt am: 22.11.2024 um 20:11 Uhr

8644
8644 26.01.2006 um 13:10:41 Uhr
Goto Top
Hi Appache,

mit einer Funktion wird es nicht gehen, entweder, du bastelst dir ein Makro, oder du nutzt die Filterfunktion.

Beschreib mal bitte etwas genauer, was du vorhast.

Psycho

Klug ist jeder - der eine vorher, der andere hinterher
Unix
Unix 26.01.2006 um 13:11:16 Uhr
Goto Top
Hallo Appache,

vielleicht kann man das mit WENN lösen.

Beispiel:

=WENN(A2="Suchkriterium";A2(oder andere Ergebnis);" "(oder "nicht gefunden", "keine Angabe" oder sowas ähnliches)

Wenn das nicht hilft, beschreib genauer, was Du brauchst. Vielleicht kommt man dann der Lösung näher.

VG,

Unix
Appache
Appache 26.01.2006 um 13:21:03 Uhr
Goto Top
hallo

also ich versuch es mal etwas zu konkretisieren.

ich habe hier eine exceltabelle aus einer sql abfrage erstellt. darin sind 9 spalten enthalten; unter anderem artikelnummer, lagerbestand, matchcode usw.... in der liste sind manche artikel mehrmals enthalten. ich möchte das , wenn ich eine artikelnummer in ein feld eintrage, er mir alle artikel ausspuckt, die eben diese artikelnummer haben, soweit funktioniert das auch, er sucht mir halt nur den erstgefundenen aus obwohl weiter unten der gleiche artikel nochmal auftaucht, denn ich aber auch haben will.

momentan habe ihc diese funktion:=SVERWEIS($D$2;Quelldaten!$A:$I;1;0)
8644
8644 26.01.2006 um 13:29:14 Uhr
Goto Top
Hi,

ist da nicht ein Denkfehler drin? Artikelnummern sollten doch was eindeutiges sein, oder?

Psycho

Klug ist jeder - der eine vorher, der andere hinterher
Appache
Appache 26.01.2006 um 13:36:22 Uhr
Goto Top
ne face-smile ich kann dir ja etz nich die kompletten vorgänge hier im betrieb erklären, evtl weisst du was ressourcenlisten sind. es gibt halt im warenwirtschaftssystem mehrere arbeitsschritte zu einem einzigen produkt welche alle an einer artikelnummer geknüpft sind. wie kann ihc nun excel beibringen die suche nicht nach dem erstgefundenem zu beenden sonder weiter zu suchen und alle gefundenen nummern untereinander aufzulisten

gruß
8644
8644 26.01.2006 um 14:03:32 Uhr
Goto Top
Hi,

hmm... dann sollte noch folgendes geklärt werden:
Wie viele Datensätze gesamt, wie oft kann die Nummer vorkommen, wie sollen die Ergebnisse ausgegeben werden (untereinander...)

Psycho

Klug ist jeder - der eine vorher, der andere hinterher
Appache
Appache 26.01.2006 um 14:18:05 Uhr
Goto Top
hm das sind 10.000 artikel. ich kann nicht sagen wieoft eine artikelnummer in dem bestand vorkommt. wie gesagt, die erste gefundene art.nr wird auhc prima angezeigt. etwa in dem muster:


Art. NR Matchcode Bestand usw
1233 bla sülz 5 hajo

die nächsten sollen halt eine zeile drunter angezeigt werde

1233 (anderer matchcode) ......
8644
8644 26.01.2006 um 14:27:16 Uhr
Goto Top
Hi,

also wenn du meinen Rat haben möchtest: Expotiere die Tabelle nach Access und bastel dir eine Abfrage! Unter Excel wird das bei der Größenordnung eh nur Gefriemel. Falls du die Filtermethode nicht magst, bleibt nur ein Makro, und das wir nicht das schnellste sein.

Psycho

Klug ist jeder - der eine vorher, der andere hinterher
Appache
Appache 26.01.2006 um 14:47:50 Uhr
Goto Top
excel und macros sind nicht gerade mein fachgebiet. wie könnte denn ein solches macro aussehn?

übrigens danke für deine/eure ratschläge
8644
8644 27.01.2006 um 10:51:30 Uhr
Goto Top
Hi,

falls niemand anders Rat weiß, musst du mir mal das Wochenende Zeit lassen, dann versuche ich dir was zu basteln.
Aber nur unter Vorbehalt, da ich die Access-Variante vorziehen würde. Oder es reicht dir vielleicht sogar folgendes:

Cursor in Tabelle setzen, dann

Menü -> Daten -> Filter -> Autofilter - hier erscheinen dann im Kopf kleine Pfeile, wo du die Kriterien auswählen kannst. Da gibt es auch den Eintrag Benutzedefiniert, wo du die Artikelnummer direkt eingeben kannst.

Psycho

Klug ist jeder - der eine vorher, der andere hinterher
8644
8644 28.01.2006 um 16:03:12 Uhr
Goto Top
Hallo Appache,

hab mal ein bisschen geforscht und gebastelt. Ich habe jetzt eine Lösung nur mit Formeln!
Wenn du mal einen Screenshot deiner Tabelle mit Beschreibung, wo was hin soll, posten könntest, passe ich dir alles an, wie du es brauchst. Falls es dir nicht gelingt, schreib mir eine PN, dann lade ich es hoch. Die Lösung ist vielleicht auch mal für andere interessant.

hau, ich habe gesprochen 8-)

Psycho

Klug ist jeder - der eine vorher, der andere hinterher
Guenni
Guenni 30.01.2006 um 12:57:31 Uhr
Goto Top
@Appache

Hi,

vielleicht hilft dir das ja weiter.

Quelltabelle Sortiment, enthält die Artikel:
A1=Artikelnummer
B1=Komponente
C1=Typ
D1=Hersteller
usw.

Zieltabelle Tabelle1, da werden die Suchergebnisse eingetragen.

Zum Suchen im Visual Basic Editor ein Formular einfügen.

Auf dem Formular ein Textfeld und einen Button erstellen.
Das Textfeld habe ich txtSuchbegriff, den Button cmdSuchen genannt.
Rechtsklick auf Button, im Kontextmenü Code anzeigen... auswählen.
Dann wird eine Prozedur erzeugt: Private Sub cmdSuchen_Click().
Da trägst du folg. Code ein:
Dim col
Dim source_row
Dim dest_row
dest_row = 1
source_row = 2
'Solange die Spalte B1 ? Bn in Tabelle Sortiment nicht leer ist  
While Not IsEmpty(Sheets("sortiment").Range("b" & source_row))  
 'Wenn aus der Spalte B ein Begriff mit dem eingegebenen Begriff  
 'aus dem Suchformular über einstimmt.....  
 If LCase(Sheets("sortiment").Range("b" & source_row).Value) = LCase(txtSuchbegriff) Then  
'.....werden aus den Spalten A ? E(Ascii-Code 65 ? 70) die jeweiligen Werte von Sortiment  
'nach Tabelle1 kopiert.  
  For col = 65 To 70
   Sheets("tabelle1").Range(Chr(col) & dest_row).Value = Sheets("sortiment").Range(Chr(col) &    source_row).Value  
  Next col
  dest_row = dest_row + 1
 End If
 source_row = source_row + 1
Wend
UserForm1.Hide
Um das Formular sichtbar zu machen, brauchst du ein Makro.
Im Visual Basic Editor ein Modul einfügen.
Sub UserForm()
UserForm1.Show
End Sub
Damit das Formular auf "Knopfdruck" da ist:
Rechtsklick auf eine Symbolleiste, Anpassen auswählen.
Den Reiter Befehle auswählen.
Unter Makros gibt?s eine Schaltfläche "Schaltfläche anpassen".
Die ziehst du in eine Symbolleiste.
Rechtsklick auf diese Schaltfläche, Makro zuweisen auswählen.
Das Makro UserForm zuweisen.


Gruß
Günni
Appache
Appache 30.01.2006 um 16:32:16 Uhr
Goto Top
hallo leute, vielen dank für die zahlreichen antworten, bin aber bis mittwoch nicht auf der arbeit, werde dann aber aufjedenfall schauen, ob das so funktioniert, melde mich dann.

danke

appa
Ulmer
Ulmer 03.02.2006 um 11:49:17 Uhr
Goto Top
Hallo Appache,

versuch es doch mal mit einer Liste (Daten - Liste- Liste erstellen Daten markieren, Häkchen bei Kopfzeile, wenn Überschriften vorhanden sind). Damit kannst Du Dir alle Datensätze der Liste anzeigen lassen, die das Suchkriterium enthalten.

Viele Grüße
Ulmer