Eindeutiger Rang mit VBA

03/12/2014 - 17:16 von Andreas | Report spam
Hallo NG,

folgendes Rang-Problem würde ich gerne innerhalb einer VBA Funktion lösen:

Ich habe eine Range (Array), welche Zahlen enthàlt. In einer zweiten Range sollen eindeutige Rangfolgen bzgl.der ersten Range ermittelt werden.

Beispiel:
In der Range("A1:E1") stehen die Werte (2, 5, 3, 3, 2). In der Range("A2:E2") sollen nun die eindeutigen Rànge absteigend berechnet werden. Wenn eine Zahl doppelt vorkommt, dann soll der Rang sequentiell erhöht werden. Das Ergebnis sollte also (4, 1, 2, 3, 5) lauten.

Wàre toll, wenn mir hier jemand helfen könnte.

Danke und viele Grüße
Andreas
 

Lesen sie die antworten

#1 Claus Busch
03/12/2014 - 17:43 | Warnen spam
Hallo Andreas,

Am Wed, 3 Dec 2014 08:16:32 -0800 (PST) schrieb Andreas:

In der Range("A1:E1") stehen die Werte (2, 5, 3, 3, 2). In der Range("A2:E2") sollen nun die eindeutigen Rànge absteigend berechnet werden. Wenn eine Zahl doppelt vorkommt, dann soll der Rang sequentiell erhöht werden. Das Ergebnis sollte also (4, 1, 2, 3, 5) lauten.



probiers mal so:

Sub Rang()
Dim i As Long

Range("A2").Formula = "=Rank(A1,A1:E1)"
For i = 2 To 5
Cells(2, i).FormulaArray = "=RANK(" & Cells(1, i).Address & _
",$A$1:$E$1)+SUM((RANK($A1:" & Cells(1, i - 1).Address &
",$A$1:$E$1)" _
& "=RANK(" & Cells(1, i).Address & ",$A$1:$E$1))*1)"
Next
End Sub


Mit freundlichen Grüßen
Claus
Vista Ultimate / Windows7
Office 2007 Ultimate / 2010 Professional

Ähnliche fragen