Aus der Excel-Hilfe:
Bei der Tabellenfunktion RANG wirkt sich das Vorhandensein zweier gleicher Zahlen auf die Ränge der nachfolgenden Zahlen aus. Ist die Zahl 10 zum Beispiel zweimal in einer Liste ganzer Zahlen vertreten, die in aufsteigender Reihenfolge sortiert sind, und hat die Zahl 10 den Rang 5, dann hat die Zahl 11 den Rang 7 (keine Zahl hat den Rang 6).
Nun gibt es eine interessante Formel, welche diese "leeren" Ränge eliminiert. Die Zahl 11 hätte dann den Rang 6. Wenn die Zahlen, die zu rangieren sind, sich in B2:B10 befinden, lautet die Formel dazu:
=SUMMENPRODUKT((B2
In der angehängten Excel-Tabelle habe ich ein paar Zahlen und die Formeln eingetragen. Die Formel funktioniert bestens.
https://www.herber.de/bbs/user/107511.xlsx
Mein Anliegen ist folgendes: Ich hätte diese Tabellenformel gern in eine VBA-Function umgewandelt, die dann etwa so ausschauen würde:
Function RANGNEU(bereich As Range, wert As Range)
RANGNEU = WorksheetFunction.SumProduct((wert
bereich wäre in D2 meiner Tabelle ($B$2:$B$10) wert wäre: (B2)
Dass das funktionieren würde, hatte ich gar nicht erhofft. Dass man Matrizen nicht so einfach in VBA erfassen kann, ist mir klar. Aber wie macht man es korrekt? Kann mir jemand von Euch helfen?
Vielen Dank Niclaus
PS In der Excel-Hilfe zu RANGE wird zum Thema "leere Ränge" auf einen Korrekturfaktor hingewiesen, der in meinen Augen nichts bringt.