2016-06-15 4 views
0

Der Code fragt derzeit den Benutzer nach zwei separaten Nummern, teilt sie und teilt die Antwort in einem Meldungsfeld. Was ich als nächstes tun möchte, ist diese Antwort zu verwenden und herauszufinden, welches Perzentil es in der Spalte "T" in meiner Arbeitsmappe ist.Verwenden einer Antwort "Antwort", um zu finden, wie hoch der Perzentil innerhalb einer Spalte ist

If response = vbNo Then 
    Dim cost, weight, answer As Variant 
     cost = InputBox("Please Enter PO Cost") 
     weight = InputBox("Please Enter Net Weight") 
     answer = cost/weight 
     MsgBox "Price per KG is: " & answer 
     Exit Sub 
+0

Hallo cam, nur um zu klären, wenn Sie die niedrigsten 10% betrachten, erwarten Sie 0,1 oder 1, wenn die Liste der Werte ist (1 , 2,3, ..., 10)? – Yarnspinner

+0

@Yarnspinner Ich würde 0,1 erwarten ... Was das Endziel dieses Codes ist, diese Antwort von der Division Problem zu nehmen, und überprüfen, um zu überprüfen, dass die Antwort innerhalb eines bestimmten Bereichs aller Werte in der Spalte "T" . Daher besteht meine Lösung darin, anzuzeigen, welches Prozent der Antwort innerhalb der Spalte "T" fällt, um dem Benutzer mitzuteilen, ob seine Antwort nahe dem Durchschnitt dieser Spalte ist. – cam

+0

WorksheetFunction.Percentrank ist, was Sie dann suchen. Es nimmt ein Array auf und ein Wert gibt dann die 0,1% in diesem Fall zurück. Percentile ist die Umkehrung, u Pass in einem Array und 0.1, um zurück 1. – Yarnspinner

Antwort

0

Sie können die eingebaute Percentrank-Funktion von Excel nutzen. Ich nehme an, es gibt keine Leerzeichen in Spalte T.

+0

Ich versuche, diesen Code für mich zu arbeiten, und ich bekomme immer einen Fehler in der letzten Zeile, sagt, dass es ein "=" erfordert, oder wenn ich es auf etwas setze, heißt es "Zuordnung zu Konstanten nicht erlaubt" – cam

+0

Sorry, das sollte meine Schuld sein. Dies ist eine Arbeitsblattfunktion, so dass sie keinen VBA-Bereich einnimmt und stattdessen eine Zeichenfolge erwartet. Sollte funktionieren, wenn Sie es zu "T1: T500" oder relevantic_array.Address ändern. Entschuldigung, habe Excel jetzt nicht bei mir und konnte es nicht überprüfen. Warte nein, das ist nach dem Weiterlesen nicht mehr der Fall. Ich bin mir nicht sicher, was den Fehler verursacht. – Yarnspinner

+0

@cam, ok der neue Code sollte gut funktionieren. Der eigentliche Fehler war, dass percentrank einen Wert zurückgab, der einer Variablen zugewiesen werden musste. Ich habe x als Variable im Code deklariert und jetzt läuft es gut. – Yarnspinner

1

Sie können die Perzentil-Arbeitsblattfunktion wie folgt verwenden.

Public Sub Percentile() 
    Dim myrng As Range 

    Set myrng = Range("t1:t10") 'set the range 
    mypercentile = WorksheetFunction.Percentile(myrng, 0.9) ' Retrieve the 90th percentile from t1:t10 
    MsgBox ("The percentile is " & mypercentile) 
End Sub 
Verwandte Themen