2017-05-07 4 views
0

Aus bestimmten Gründen möchte ich berechnen, wie viel ein Preis sein wird, im Vergleich zum Gewicht eines Artikels.[Excel-VBA] Abrufen des spezifischen Preises aus der Zelle

Ich habe zwei Spalten in Excel erstellt, was ich eigentlich will ist, dass, wenn ich in A1 die Menge an LBS eingeben, für e.x. 100 muss die Ausgabe $ 150, - in B1 sein. Ich habe etwas mit einem einfachen VBA-Code versucht. IT funktioniert aber, die Preise ändern sich über die Zeit.

In Spalte C (LBS) und D (Preis) habe ich die Lbs und Preise (in Blatt 2) notiert. Für e.x.

LBS Price 
100 150 
200 300 
300 450 

Ich habe den folgenden Code:

Private Sub CommandButton1_Click() 
Dim kilo As Integer, result As String 

kilo = Range("A1").Value 

Select Case kilo 
    Case Is >= 300 
     result = "450 euro" 
    Case Is >= 200 
     result = "300 euro" 
    Case Is >= 1 
     result = "150 euro" 
    Case Else 
     result = "nvt" 
End Select 

Range("B1").Value = result 

End Sub 

Das Problem ist die Liste zu lang ist, geht es zu 40000 LBS. Über den 40.000 LBS/Gewicht kommt ein Preis von xxx pro 500 lbs/Kilo

die Formel ist so zwischen 100 und 199 lbs, der Preis wird € 300 sein, - Zwischen 200 und 299 Preis wird 450 € sein -

Hat jemand eine Idee? Ich möchte die Zelle ergeben, also wenn das Gewicht zwischen 200 und 300 liegt, sollte die Ausgabe € 450, - sein. Zelle (B4)

Vielen Dank.

+0

Sie wirklich auf der Suche entweder mit einem Gewicht auf Preis Karte - ein bisschen wie die 'If' Aussagen - oder einen Algorithmus, um Gewicht zu Preis umwandelt, oder eine Kombination der beiden .Ich bin mir nicht sicher, wie viele Leute würden gerne versuchen, den Algorithmus zu konstruieren, aber einige könnten, und wenn sie es tun, werden sie die vollständige Liste der Gewicht zu Preis-Werte wollen - vielleicht bearbeiten Sie Ihren Beitrag, um das jetzt aufzunehmen. – Ambie

+0

Momentan scheint der Algorithmus 'Gewicht/100 * 150' zu sein, aber die Frage ist: Wird der Algorithmus nach 300 lbs beibehalten? – Ambie

Antwort

0

Ich bin nicht allzu klar auf Ihre Datenstruktur hier, aber die folgenden sollen Ihnen helfen, in die richtige Richtung zu bewegen:

mit Ihrer Liste der LBS | Preis in Blatt 2 (Spalten C und D), diese Liste zu gewährleisten ist aufsteigend sortiert ...

=VLOOKUP(A1,Sheet2!C:D,2,True) 

Diese Formel „sucht“ der Wert aus der Zelle A1 in der ersten Spalte des Bereichs Sheet2!C:D. Wenn keine Übereinstimmung gefunden wird, indem True als letzter Parameter verwendet wird, behandeln wir die (geordnete) Liste als eine Menge von Schwellenwerten ... der letzte Schwellenwert, der erfüllt oder überschritten wird, wird als "übereinstimmende" Zeile betrachtet. Der dritte Parameter 2 bedeutet, dass wir die zweite innerhalb des Bereichs Sheet2!C:D abrufen.

Sie können die Seite Office Support finden VLOOKUPhere

Hinweis, dies wird Ihr „Max“ ohne eine weitere Arbeit nicht bewältigen. Sie könnten zum Beispiel das wie eine zweite Formel etwas als Eingabe verwenden:

=If([output] >= [Max], [Per LB Calculation], [output]) 
0

ich nicht so klar bin, was der Höchstpreis, aber Sie die Formel unten verwenden können die PriceFactor pro „LBS“ Bereich zu berechnen :

PriceFactor = WorksheetFunction.RoundUp((Kilo/100), 0) 

und dann multiplizieren PriceFactor * 150 die Result zu bekommen.

-Code

Option Explicit 

Private Sub CommandButton1_Click() 

Dim Kilo As Long, Result As Long 
Dim PriceFactor As Double 

Kilo = Range("A1").Value 

PriceFactor = WorksheetFunction.RoundUp((Kilo/100), 0) 
Result = PriceFactor * 150 

Range("B1").Value = Result 

End Sub 
Verwandte Themen