Abstract

Wenn Sie die verfügbaren Parlamentssitze fair gemäß der erzielten Stimmen pro Partei verteilen wollen, können Sie die (externer Link!) D’Hondt Methode anwenden:

sbdHondt_01_Screen

Literatur

Ein vergnügliches Büchlein ist:

N. Herrmann, Mathematik ist überall, Oldenbourg Verlag München Wien, ISBN 3-486-57583-X

Siehe Kapitel 12, Das Wahl-Problem.

Appendix Programmcode sbDHondt

Bitte den Haftungsausschluss im Impressum beachten.

Option Explicit

Function sbdHondt(lSeats As Long, vVotes As Variant) As Variant
'Implements the d'Hondt method for allocating seats in
'party-list proportional representation political election
'systems.
'Source (EN): http://www.sulprobil.com/sbdhondt_en/
'Source (DE): http://www.bplumhoff.de/sbdhondt_de/
'(C) (P) by Bernd Plumhoff 01-Dec-2009 PB V0.10
Dim i As Long, k As Long, n As Long
Dim vA As Variant, vB As Variant, vR As Variant
Dim dMax As Double

With Application.WorksheetFunction
vA = .Transpose(.Transpose(vVotes))
vB = vA
n = UBound(vA, 1)
ReDim vR(1 To n, 1 To 1) As Variant
ReDim lDenom(1 To n) As Long

Do While i < lSeats
    'identify max
    dMax = .Max(vB)
    k = .Match(dMax, vB, 0)
    lDenom(k) = lDenom(k) + 1
    vB(k, 1) = vA(k, 1) / (lDenom(k) + 1#)
    vR(k, 1) = vR(k, 1) + 1
    i = i + 1
Loop
sbdHondt = vR
End With
End Function

Download

Bitte den Haftungsausschluss im Impressum beachten.

sbDHondt.xlsm [24 KB Excel Datei, ohne jegliche Gewährleistung]