ich habe ein Problem wofür ich so etwas ähnliches wie einen Sverweis mit mehr als einem Kriterium bräuchte.
Ich habe zwei Excel Tabellen. In der Preisliste habe ich in
Spalte A: Artikelnummern,
Spalte B: Stückzahl; Spalte C: Preis
Untereinander kann beispielsweise 10 mal der gleiche Artikel in verschiedenen Stückzahlen und verschiedenen Preisen stehen.
In der zweiten Liste steht in Spalte A die Artikelnummer und in Spalte B die Stückzahl.
Nun möchte ich in Spalte C der zweiten Liste den gültigen Preis für die in Spalte B angezeigte Stückzahl wiedergeben lassen. Excel müsst also zuerst die Werte aus beiden Listen für die Artikelnummer vergleichen und dann noch die Werte der Stückzahlen vergleichen und den Wert der Spalte C wiedergeben.
Zusätzliche Schwierigkeit ist noch, dass man bei der Stückzahl nach größer/gleich suchen müsste.
Da in Tabelle 1 die Preise beispielsweise so angegeben sind:
In Tabelle zwei steht jetzt beispielsweise Art. 1145 ; Stückzahl 112
jetzt müsste in Spalte C der zweiten Tabelle der Preis 12 € für ab 100 Stück angegeben werden.
die Originaltabelle kann ich aus Datenschutzgründen leider nicht hochladen, aber ich habe mal eine Beispieltabelle aufgebaut.
Mit roter Schrift habe ich beschrieben, welchen Wert ich in Spalte C erwarte. Im ersten Tabellenblatt findet man die Preisliste, also die Quelltabelle.
Nun möchte ich in Spalte C der zweiten Liste den gültigen
Preis für die in Spalte B angezeigte Stückzahl wiedergeben
lassen. Excel müsst also zuerst die Werte aus beiden Listen
für die Artikelnummer vergleichen und dann noch die Werte der
Stückzahlen vergleichen und den Wert der Spalte C wiedergeben.
Hallo Sandro,
Holger hat dir ja schon Formellösungen gezeigt.
Ich habe auch eine:
Tabellendarstellung erreicht mit dem Code in FAQ:2363
Die Lösung hat einen nachteil, sie funktioniert wie du siehst mit festgelegten
Namen. Sehr aufwendig die manuell bei vielen Artikeln anzulegen.
Deshalb das nachstehende Makro, es erledigt das.
Brauchst es nur nach Änderungen in der Preisliste.
Gruß
Reinhard
Alt+F11, Einfügen Modul, Code reinkopieren. Editor schließen.
Zum Ausführen des Makros: Alt+F8, NamenVergeben auswählen…
Option Explicit
Sub NamenVergeben()
Dim Zei As Long, Von As Long
With Worksheets("Preisliste")
.Range("A1").Select
For Zei = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
Von = Zei
While .Cells(Zei + 1, 1).Value = .Cells(Von, 1).Value
Zei = Zei + 1
Wend
ThisWorkbook.Names.Add Name:="Artikel" & .Cells(Von, 1).Value, \_
RefersTo:="=Preisliste!$B$" & Von & ":blush:C$" & Zei
Next Zei
End With
End Sub