Anzeige
Archiv - Navigation
168to172
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
168to172
168to172
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Sverweis zum x-ten Mal (mehrere Fundstellen)

Sverweis zum x-ten Mal (mehrere Fundstellen)
11.10.2002 12:23:46
Lothar Reimann
Hallo Spezialisten!

Mein Problem ist etwas komplexer: ich versuche mal, das einigermassen zu beschreiben.

Aus unserem Warenwirtschaftssystem muss ich monatlich Daten aktualisieren und zuordnen. Es können immer neue Datensätze hinzukommen, resp. Datensätze herausfallen.

Es handelt sich hierbei um 2 Tabellen die ich aus einen Download erstelle. Eine dritte Tabelle liest - Macrogesteuert die beiden ersten Tabellen ein, sortiert, filtert usw.

Soweit - so gut!

Tabelle 1 enthält (stark vereinfacht) in sortierter Reihenfolge in Spalte A alle Artikelnummern (und in weiteren Spalten Texte, Preise und sonstige Daten, die hierbei aber nicht relevant sind)

Tabelle 2 enthält Gruppenbezeichnungen zu Artikelnummern, wobei "und hier liegt das Problem!!!" ein Artikel mehreren Gruppen zugeordnet sein kann.


Aussehen tut das ganze etwa so:

Tabelle 1:
Spalte A - Spalte B bis ...
Artikel 1 - irgendwelche Daten
Artikel 2 - ...
.
.
Artikel n

Tabelle 2:
Spalte A - Spalte B
Artikel 1 - Gruppe A
Artikel 1 - Gruppe C
Artikel 2 - Gruppe A
Artikel 3 - Gruppe D
Artikel 3 - Gruppe F
Artikel 3 - Gruppe X
.
.
Artikel n - ...

Will ich nun jedem Artikel in Tabelle 1 in der nächsten freien Spalte "sowieso" (z.b M) die Gruppe zuordnen, bekommen ich über die SVerweis-Formel "sverweis(A1;Tabelle 2!A:B;Spaltenummer;0)" jeweils nur die erste gefundene Gruppe zugeordnet, also in obigem Beispiel nur die Gruppe A zum Artikel 1. Wie kann ich in Tabelle 1 nun in Spalte N und folgenden die jeweils noch vorkommenden Gruppen zur gleichen Artikelnummer zuordnen, da ich ja - selbst wenn ich die Formel in Tabelle 1 Spalte N wiederholen würde - wieder nur die Gruppe A zum Artikel 1 finden würde.

Als Ansatz käme auch in Betracht, die bereits in Tabelle 2 gefundenen Zeile nach dem Eintrag in Tabelle 1 zu löschen (zuvor natürlich die Formeln in Tabelle 1 in Werte umsetzen).

So meine "Damen und Herren Gelehrten", jetzt seid Ihr am Zug!

Danke!!!

Viele Grüsse
Lothar Reimann


7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Sverweis zum x-ten Mal (mehrere Fundstellen)
11.10.2002 12:36:52
Milka84
probier dir aus der Tabelle mit den Gruppen eine Pivot-Tabelle zu erstellen (Artikel in Zeile und Gruppe in Spalte und Inhalt)
DAnn erstellst du dir einen Sverweis. Ist schwer hier ohne Ansicht zu erklären, ich werd aber gleich mal was fertig machen und dann per mail an dich schicken!!!
Zumindest hier erst mal der Ansatz.....

Gruß
Michael

Re: Sverweis zum x-ten Mal (mehrere Fundstellen)
11.10.2002 13:01:23
Chris
Hallo Lothar

In nachfolgendem Link findest du Beispiele für SVERWEIS mit mehreren Resultaten.

http://www.excelformeln.de/formeln.html?gruppe=3

Persönlich würd ich aber eine Makro Lösung machen.

Dim suchwert, wert
zeilenanztab1 = Range("A65536").End(xlUp).Row

For zeilenanztab2 = 1 To 65536
If Sheets("Tabelle2").Cells(zeilenanztab2, 1).Formula = "" Then Exit For
Next zeilenanztab2

For i = 1 To zeilenanztab1
wert = ""
suchwert = Sheets("Tabelle1").Cells(i, 1).Formula
For ii = 1 To zeilenanztab2
If Sheets("Tabelle2").Cells(ii, 1).Formula = suchwert Then
If wert <> "" Then
wert = wert & ", " & Sheets("Tabelle2").Cells(ii, 2).Formula
Else
wert = Sheets("Tabelle2").Cells(ii, 2).Formula
End If
End If
Next ii

Sheets("Tabelle1").Cells(i, 2).Formula = wert
Next i


Tabelle 1 (als 'Tabelle1' beschriftet): Spalte A - Artikelnummer / Spalte B - Ergebnis

Tabelle 2 (als 'Tabelle2' beschriftet): Spalte A - Artikelnummer / Spalte B - Gruppe

Das Makro wird aus Tabelle 1 gestartet.

Gruss
Chris

Anzeige
Re: Sverweis zum x-ten Mal (mehrere Fundstellen)
11.10.2002 13:01:29
Lothar Reimann
Hallo Michael!

Danke für die schnelle Antwort!
Da sieht man wieder mal, wie notwendig es ist, das Problem so ausführlich wie möglich zu schildern. (versprochen: ich bessere mich)

Hier mein "AddOn":
1. Es kann sich um bis zu 8000 Artikel handeln.
2. Nicht alle Artikel sind einer Gruppe zugeordnet!!
3. Ein Artikel kann in max 9 Gruppen stecken.
4. Die Pivot-Lösung scheidet möglicherweise aus ? Ich habe bislang 700 Zeilen in der Gruppen Tabelle, und es können noch mehr werden. Mein Pivotversuch wurde mit der Meldung "Nicht alle Spalten darstellbar" quittiert. (?) Dann sind es wohl mehr als 255 Möglichkeiten ?

Anzeige
Re: Sverweis zum x-ten Mal - Nachtrag
11.10.2002 13:04:25
Chris
Hallo Lothar

Habe gerade noch dein AddOn gelesen. Mit 8000 Artikelnummern wird das Makro etwas langsam und schwerfällig.

Fällt mir aber trotzdem keine schlauere Lösung ein. Vielleicht kann dir ein VBA Crack das Makro noch ein bischen effizienter programmieren.

Gruss
Chris

Re: Sverweis zum x-ten Mal - Nachtrag
11.10.2002 13:14:37
Lothar Reimann
Danke Chris!
Das Makro sieht jedenfalls vielversprechend aus! Und was die Geschwindigkeit angeht, so habe ich auf meinem Büro P4/1500 mit 256MB RAM unter NT4/SP6 gelernt, dass Excel-Mammut-Tabellen mit ca 18-22 MB Filesize (resp. vielfach verknüpfte im 100MBit-Netz), schon mal 15 Minuten brauchen sich zu aktualisieren :-(

Danke jedenfalls.

Noch eine kurze Frage:
Da sowohl Tabelle 1 wie auch Tabelle 2 immer wieder neu erstellt werden, kann ich das VBA doch auch aus Tabelle 3 (die ist fest und da stecken auch alle anderen Makros drin) starten?

Gruss
Lothar

Anzeige
Re: Sverweis zum x-ten Mal - Nachtrag
11.10.2002 13:59:53
Chris
Dim suchwert, wert

For zeilenanztab1 = 1 To 65536
If Sheets("Tabelle1").Cells(zeilenanztab1, 1).Formula = "" Then Exit For
Next zeilenanztab1

For zeilenanztab2 = 1 To 65536
If Sheets("Tabelle2").Cells(zeilenanztab2, 1).Formula = "" Then Exit For
Next zeilenanztab2

For i = 1 To zeilenanztab1
wert = ""
suchwert = Sheets("Tabelle1").Cells(i, 1).Formula
For ii = 1 To zeilenanztab2
If Sheets("Tabelle2").Cells(ii, 1).Formula = suchwert Then
If wert <> "" Then
wert = wert & ", " & Sheets("Tabelle2").Cells(ii, 2).Formula
Else
wert = Sheets("Tabelle2").Cells(ii, 2).Formula
End If
End If
Next ii

Sheets("Tabelle1").Cells(i, 2).Formula = wert
Next i


So sollte es eigentlich auch aus einem anderen Blatt heraus gestartet werden können. Wäre auch sonst gegangen, aber so ist es m.E. besser.

Gruss
Chris

Anzeige
Re: Sverweis zum x-ten Mal (mehrere Fundstellen)
11.10.2002 14:40:47
andreB.
Hey,

ich kann leider keine Antwort auf eure Fragestellung bieten, aber ich hätte gerne gewußt, wie Ihr die Daten aus dem Warenwirtschaftsprogramm kriegt, wenn dieses gestartet ist (Server).
Wenn nicht gestartet, dann kein Problem.

Will mich nicht in diese Diskusion einmischen, wäre aber für eine Antwort dankbar.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige