SVerweis, mehrere Werte in einer Zelle
#1
Hallo zusammen

Ich habe es jetzt lange versucht, aber leider nicht hingekriegt. Folgende Formel sucht in einer Datenbank (anderes Dokument) nach der Kundennummer (A3) und gibt die zugehörige Geschäftsnummer (18) im aktuellen Dokument aus:

Code:
=WENN((WENN(ISTFEHLER(SVERWEIS(A3;[Geschäftsdatenbank.xlsm]Geschäftsdatenbank!$C$3:$V$10002;18;FALSCH));"";(SVERWEIS(A3;[Geschäftsdatenbank.xlsm]Geschäftsdatenbank!$C$3:$V$10002;18;FALSCH))))=0;"";(WENN(ISTFEHLER(SVERWEIS(A3;[Geschäftsdatenbank.xlsm]Geschäftsdatenbank!$C$3:$V$10002;18;FALSCH));"";(SVERWEIS(A3;[Geschäftsdatenbank.xlsm]Geschäftsdatenbank!$C$3:$V$10002;18;FALSCH)))))


Jetzt gibt es aber Kunden, welche mehrfach in der Geschäftsdatenbank vorkommen. Der jetzige SVERWEIS listet nur die erste gefundene Geschäftsnummer. Mein Ziel ist es, dass alle zugehörigen Geschäftsnummern in der Zelle mit der Formel gelistet werden (durch Komma und Abstand getrennt: ", ").

Könnte mir bitte jemand mit der Anpassung der obigen Formel helfen?
Top
#2
Hallöchen,

das Prinzip findest Du über die Suche z.B. in diesem Beitrag:
http://www.clever-excel-forum.de/Thread-...gen-lassen

Hier mal eine andere Variante. In Spalte A gebe ich in A2 eine Personalnummer ein. In A4 wird die nochmal aus der Tabelle gelesen, in A6 wird der Mitarbeitername geholt. In Spalte B gebe ich die Zeilennummer aus der Datentabelle an, wo die Personalnummer gefunden wurde. In Spalte C steht dann die ausgegebene Arbeitsbekleidung.

In der Datentabelle gibt es die 3 Spalten
Personalnr.
Name
Inventar


Arbeitsblatt mit dem Namen 'Tabelle2'
 ABC
1AuswahlZeileArbeitsbekleidung
210012Arbeitsschuhe
3Personalnr.5Wattejacke
410018Latzhose
5Vorname Name11Handschuhe
6Max Mustermann14Schutzhelm

ZelleFormel
B2=VERGLEICH($A$2;INDEX([INDEX_Mappe2.xlsx]Tabelle1!$A:$A;1):INDEX([INDEX_Mappe2.xlsx]Tabelle1!$A:$A;65000);0)
C2=INDEX([INDEX_Mappe2.xlsx]Tabelle1!C:C;$B2)
B3=VERGLEICH($A$2;INDEX([INDEX_Mappe2.xlsx]Tabelle1!$A:$A;B2+1):INDEX([INDEX_Mappe2.xlsx]Tabelle1!$A:$A;65000);0)+B2
C3=INDEX([INDEX_Mappe2.xlsx]Tabelle1!C:C;$B3)
A4=INDEX([INDEX_Mappe2.xlsx]Tabelle1!A:A;$B2)
B4=VERGLEICH($A$2;INDEX([INDEX_Mappe2.xlsx]Tabelle1!$A:$A;B3+1):INDEX([INDEX_Mappe2.xlsx]Tabelle1!$A:$A;65000);0)+B3
C4=INDEX([INDEX_Mappe2.xlsx]Tabelle1!C:C;$B4)
B5=VERGLEICH($A$2;INDEX([INDEX_Mappe2.xlsx]Tabelle1!$A:$A;B4+1):INDEX([INDEX_Mappe2.xlsx]Tabelle1!$A:$A;65000);0)+B4
C5=INDEX([INDEX_Mappe2.xlsx]Tabelle1!C:C;$B5)
A6=INDEX([INDEX_Mappe2.xlsx]Tabelle1!B:B;$B2)
B6=VERGLEICH($A$2;INDEX([INDEX_Mappe2.xlsx]Tabelle1!$A:$A;B5+1):INDEX([INDEX_Mappe2.xlsx]Tabelle1!$A:$A;65000);0)+B5
C6=INDEX([INDEX_Mappe2.xlsx]Tabelle1!C:C;$B6)
Diese Tabelle wurde mit Tab2Html (v2.5.0) erstellt. ©Gerd alias Bamberg
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#3
Hallo schauan

Die erwähnten Lösungen habe ich bereits gefunden und benötigte ich bereits früher für ein anderes Problem und konnte es dort in der Form umsetzen.
Allerdings bin ich ein VBA-Nichtswisser  und schaffe es nicht, die Lösung zu adaptieren. Ich möchte ja mehrere Werte in der gleichen Zelle.

Also die Geschäftsdatenbank hat z.B. die Werte:

1 | 18 (Spaltenzahl im Suchbereich)
10001 | 2014/001
10001 | 2014/002
10002 | 2014/003
10003 | 2014/004

In der anderen Tabell mit der Formel wäre dann im Feld A3 der Inhalt: 10001
In dem Feld mit der Formel sollte dann stehen: 2014/001, 2014/002

Geht das so? Wenn möglich ohne Matrixformel?
Top
#4
Vielleicht etwas mit Verketten von mehreren SVERWEISEN? Werde nicht schlauer...
Top
#5
Hallo,


das wird eine wahnsinnig aufwändige und performancefressende Formel, laß besser die Finger davon. Entweder VBA, oder in einzelne Zellen!
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Top
#6
Hallöchen,

erst mal noch ein Hinweis zur Vereinfachung. Ab Excel 2007 gibt's WENNFEHLER. Damit brauchst Du nicht mehr

WENN(ISTFEHLER(SVERWEIS(A3;[Geschäftsdatenbank.xlsm]Geschäftsdatenbank!$C$3:$V$10002;18;FALSCH));"";(SVERWEIS(A3;[Geschäftsdatenbank.xlsm]Geschäftsdatenbank!$C$3:$V$10002;18;FALSCH))))

Sondern es reicht
WENNFEHLER(SVERWEIS(A3;[Geschäftsdatenbank.xlsm]Geschäftsdatenbank!$C$3:$V$10002;18;FALSCH));"")

Wenn Du eine Formel auf mehrere Treffer in einer Zelle umbauen willst, dann musst Du den Bereich so oft prüfen und damit die Formel so lang gestalten wie Du Treffer erwartest.  Bist Du sicher, dass es nur 3 Treffer sein können, musst Du die Formel 3x einsetzen. Können es 5 sein, oder 7, oder 10, dann so oft.

für 2 Treffer könnte es so aussehen:

=INDEX([INDEX_Mappe2.xlsx]Tabelle1!C:C;VERGLEICH($A$2;INDEX([INDEX_Mappe2.xlsx]Tabelle1!$A:$A;1):INDEX([INDEX_Mappe2.xlsx]Tabelle1!$A:$A;65000);0)) & "," & INDEX([INDEX_Mappe2.xlsx]Tabelle1!C:C;VERGLEICH($A$2;INDEX([INDEX_Mappe2.xlsx]Tabelle1!$A:$A;B2+1):INDEX([INDEX_Mappe2.xlsx]Tabelle1!$A:$A;65000);0)+VERGLEICH($A$2;INDEX([INDEX_Mappe2.xlsx]Tabelle1!$A:$A;1):INDEX([INDEX_Mappe2.xlsx]Tabelle1!$A:$A;65000);0))

Ich habe dazu z.B. die Formeln aus C2 und C3 genommen und dort für die $B2 und $B3 die jeweiligen Formeln eingesetzt.
Damit wäre die Formel schon gut doppelt so lang wie Deine ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#7
Hallo,

ich schlage vor, Du stellst mal die aktuellen Versionen Deiner beiden Dateien vor!
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
Top
#8
Hallo zusammen

Vielen Dank für die angebotene Hilfe. Meine Antwort kommt so spät weil ich vergessen habe, das Thema zu abonnieren   Dodgy 

Die aktuellen Dateien findet ihr im Anhang. Die betreffende Formel steht in der Kundendatenbank unter Geschäftsnummer...

Da das aber offensichtlich aufwändig wird, wäre ich auch mit einer der folgenden Lösungen zufrieden:

1. (bevorzugt):
Die letzten 3 Geschäftsnummern werden im Feld durch Kommas getrennt angezeigt.

2.
Nur die letzte Geschäftsnummer wird im Feld angezeigt.

Mit letzte meine ich den letzten Treffer (der neueste). Das selbe mit den 3 letzten (die 3 neuesten). (Je neuer desto weiter unten in der Geschäftsdatenbank)

Wenn mir jemand zur Lösung 1 (falls zu performancefressend/zu schwierig, auch Lösung 2) eine Formel erstellen könnte wäre ich sehr dankbar! :19:


Angehängte Dateien
.xlsm   Geschäftsdatenbank.xlsm (Größe: 660,35 KB / Downloads: 11)
.xlsm   Kundendatenbank.xlsm (Größe: 371,77 KB / Downloads: 9)
Top
#9
Hallo,

als allererstes: eine intelligente Tabelle wird nicht auf Vorrat angelegt! Sie enthält nur soviel Zeilen, wie auch daten da sind. Mit jedem neuen Eintrag verlängert sie sich automatisch, auch die Formeln werden weitergeführt! Dann solltest Du darüber nachdenken , Nullen in den Feldern auszublenden, in denen deine Sverweise stehen, die werden dann auch deutlich kürzer. Dann solltest Du den Funktionsumfang von Excel auch richtig nutzen!

Im Anhang mal ein paar Veränderungen, was die Formeln betrifft und ein Ansatz für das, was Du suchst.



.xlsm   Kundendatenbank.xlsm (Größe: 226,67 KB / Downloads: 13)

.xlsm   Geschäftsdatenbank.xlsm (Größe: 252,93 KB / Downloads: 13)
Gruß

Edgar

Meine Antworten sind freiwillig und ohne Gewähr!
Über Rückmeldungen würde ich mich freuen.
[-] Folgende(r) 1 Nutzer sagt Danke an BoskoBiati für diesen Beitrag:
  • Hawkeye
Top
#10
Hallo

Vielen Dank für die schnelle Rückmeldung!

Bei mir funktioniert das mit der Übernahme der Formeln irgendwie nicht, die Tabelle wird aber verlängert (jedoch ohne Formlen).
Die Felder für die Gutscheinnr. sind leider auch leer, obwohl die Formel eingetragen ist.

Klappt es denn bei Dir? In dem Fall habe ich wohl irgend etwas falsch gemacht beim Öffnen...
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste