Clever-Excel-Forum

Normale Version: Artikelnummer automatisch generieren durch verschiedene Abfragen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Einen wunderschönen guten Tag zusammen,

Ich habe ein kleines Problem mit dem ich nicht weiter komme. 

Es soll in einer Excel Tabelle eine Artikelnummer generiert werden mit Datenabfragen aus verschiedenen Datenblättern

Das ganze soll dazu dienen im Ehrenamt eine Material / Inventarliste mit Artikelnummern zu versehen wobei die Artikelnummer ein "lesbarer Code" sein soll.


ich habe vier Datenblätter in der Tabelle:

1. mit Lagerorten: 2 Spalten (Nummer und Name)
2. mit Personal: 2 Spalten (Nummer und Name)
3. mit Artikelgruppen: 2 Spalten (Nummer und Artikel)


in dem vierten Datenblatt wähle ich nun über Dropdown den Lagerort, die Person und den Artikel aus. ergänze in anderen Spalten noch ggf. Größe und Seriennummern sowie andere Daten welche für die Anfrage nicht relevant sind....


Frage: nun soll aus den 3 ausgewählten Feldern eine Artikelnummer generiert werden...

z.B.: 

zuerst der Lagerort - die dazugehörige Nummer 04
dann die gewählte Person - 08
dann die Artikelgruppe - 03

als letztes soll geprüft werden ob es bis dahin diese Kombination schon gibt und eine Laufende zweistellige Nummer folgen.


Quasi Ergebnis

04080301

mit ein wenig Hintergrundwissen kann ich dann, wenn ich den Schuh in der Hand habe ablesen, 
Lager IAT, Besitzer Schindler, Tauchschuh, der Erste

Tabelle Inventar WRG
Hi,

so?

Zuordnung

ABCDEF
1LagerortPersonalArtikelGrößeSeriennummerArtikelnummer
2SprinterBöhm, AndreasFWR Handschuhe58123456041105
Formeln der Tabelle
ZelleFormel
F2=TEXT(INDEX(htbl_Lagerorte!$A$1:$A$20;VERGLEICH(A2;htbl_Lagerorte!$B$1:$B$20;0));"00")&TEXT(INDEX(htbl_Personal!$A$1:$A$20;VERGLEICH(B2;htbl_Personal!$B$1:$B$20;0));"00")&TEXT(INDEX(htbl_Artikel!$A$1:$A$20;VERGLEICH(C2;htbl_Artikel!$B$1:$B$20;0));"00")

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8
Hallo,

in Deinem Fall würde ich in den drei Tabellen mit den Listen die Spalten vertauschen, dann könntest Du mit einem Sverweis arbeiten, dann wird die Formel deutlich kürzer:


Code:
=TEXT(SVERWEIS(A2;htbl_Lagerorte!A:B;2;0);"00")&TEXT(SVERWEIS(B2;htbl_Personal!A:B;2;0);"00")&TEXT(SVERWEIS(C2;htbl_Artikel!A:B;2;0);"00")&TEXT(ZÄHLENWENNS($A$1:A2;A2;$B$1:B2;B2;$C$1:C2;C2);"00")

[attachment=14223]
Hallo,

noch eine Alternative mit VBA:


Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim WSF As WorksheetFunction: Set WSF = Application.WorksheetFunction
Dim L_Nr As String
Dim Per As String
Dim Art As String
Dim Art_Nr As String
If Target.Column <> 6 Then Exit Sub
Target.NumberFormat = "@"
With Sheets("htbl_Lagerorte").UsedRange
   L_Nr = Format(WSF.Index(.Columns(1), WSF.Match(Target.Offset(, -5), .Columns(2), 0)), "0#")
End With
With Sheets("htbl_Personal").UsedRange
   Per = Format(WSF.Index(.Columns(1), WSF.Match(Target.Offset(, -4), .Columns(2), 0)), "0#")
End With
With Sheets("htbl_Artikel").UsedRange
   Art = Format(WSF.Index(.Columns(1), WSF.Match(Target.Offset(, -3), .Columns(2), 0)), "0#")
End With
Art_Nr = L_Nr & Per & Art
For i = 1 To Target.Row - 2
   If Left(Target.Offset(-i).Value, 6) = Art_Nr Then Anz = Anz + 1
Next i
Target.Value = Art_Nr & Format(Anz + 1, "0#")
End Sub


mfg
(07.11.2017, 15:46)BoskoBiati schrieb: [ -> ]Hallo,

in Deinem Fall würde ich in den drei Tabellen mit den Listen die Spalten vertauschen, dann könntest Du mit einem Sverweis arbeiten, dann wird die Formel deutlich kürzer:


Code:
=TEXT(SVERWEIS(A2;htbl_Lagerorte!A:B;2;0);"00")&TEXT(SVERWEIS(B2;htbl_Personal!A:B;2;0);"00")&TEXT(SVERWEIS(C2;htbl_Artikel!A:B;2;0);"00")&TEXT(ZÄHLENWENNS($A$1:A2;A2;$B$1:B2;B2;$C$1:C2;C2);"00")

1000 Dank!!! genau so wie ich es mir vorgestellt habe! (mit meinem Leichenhaften wissen)
Hi,

Leichen oder Laien?
Angel
(08.11.2017, 14:50)Rabe schrieb: [ -> ]Hi,

Leichen oder Laien?
Angel

?‍♂️ es lebe die Autokorrektur