Benutzer:Tomtar/Entwuerfe/Bundestagswahl2013 RaBB
< Benutzer:Tomtar | Entwuerfe
Beauftragung Statistik
Der Auftrag
Der Kreisverband Rastatt/baden-Baden veröffentlichte am 18.10.2013 folgende Ausschreibung:
> der KV Rastatt/Baden-Baden schreibt die Beauftragung für einen > Statistikbeauftragten zur Wahlkampfauswertung aus. > > Hintergrund: > Dass das Wahlergebnis nicht berauschend war, ist hinlänglich bekannt. > Allerdings sollten wir versuchen, daraus zu lernen. Momentan wissen wir > nur, wie das Ergebnis im gesamten Wahlkreis war. Wir wissen jedoch > nicht, wieviele Wähler wir wo sitzen haben. > Der Landkreis Rastatt hat jedoch hier: > http://www.landkreis-rastatt.de/servlet/PB/menu/2090956_l1/index.html?QUERYSTRING=bundestagswahl%25u00202013 > eine sehr umfangreiche Statistik veröffentlicht, getrennt nach Erst- und > Zweitstimmen. > > Das sind zwar tolle Zahlenwerke, allerdings kann man in der Form nichts > damit anfangen. > > Aufgabenumfang: > Erfassen der Wahlergebnisse in einem verwertbaren Format, Auswerten der > Ergebnisse je Gemeinde bzw. je Wahlbezirk, ermitteln von Hochburgen usw. >
Worauf ich wie folgt antwortete:
Hiermit bewerbe ich mich um den ausgeschriebenen Job. Begründung: Naturwissenschaftliches Studium, bisherige Schatzmeisteraktivität und Auswertungen wie etwa diese hier http://wiki.piratenpartei.de/Benutzer:Tomtar/Entwuerfe/KVs sollten eine gewisse Zahlenaffinität belegen.
Der Landkreis Rastatt veröffentlichte die Rohdaten von erst- und Zweitstimme unter folgenden Link:
http://www.landkreis-rastatt.de/wahlen/bundestag/2013/HTML/Bundestagswahl2013-Erststimme.html
http://www.landkreis-rastatt.de/wahlen/bundestag/2013/HTML/Bundestagswahl2013-Zweitstimme.html
Die Ausführung
Ich ging wie folgt vor:
- Webseiten als HTML-Datei speichern
- HTML-Datei in MS Word öffnen
- Die Tabellen aus dem in Word geöffneten Dokument in ein leeres Excel-Dokument kopieren in zwei Tabellen "Erststimmen" und "Zweitstimmen"
- Alle verbundenen Zellen auflösen. Alle Schrift nicht kursiv formatieren. Alle Zellen mit Rahmen versehen. Ausrichtungen aller Zellen auf "links", "oben" setzen.
- VBSkript anwenden, damit jetzt leere Zellen korrekt aufgefüllt werden (Code siehe unten)
- Per VBScript alle Zeilen entfernen, die uninteressant sind (nur Prozentangaben interessieren)
- Per VbScript die Ergebnisse der Bundestagswahl 2009 ausgliedern in seperate Tabellen und in den 2013er Tabellen die Ergebnisse von 2009 entfernen
- Jetzt habe ich getrennte Tabellen für Erststimmen 2009, Erststimmen 2013, Zweitstimmen 2009 und Zweitstimmen 2013 in Excel. Ab hier kann die eigentliche Statistik beginnen: Datei:Wahlergebnis bundestagswahl2013 Tabellen.ods
- Sortieren der Tabelle für die Zweitstimmen nach den Ergebnissen der Piratenpartei.
- Übertrag der Ergebnisse in eine Karte.
- Betrachtung der besten Wahlergebnisse. Die besten Ergebnisse werden erzielt in Rastatt und Baden-Baden.
- Fazit: Ein Kandidat in Rastatt hätte vll. noch am ehesten Stimmen. Das ist aber Bundestagswahl, Kommunalwahl kann anders aussehen.
Anhang: VBScript-Code
Auffüllen leerer Zellen:
Sub Main() Dim I As Integer For I = 1 To 4 FillGaps ("Erststimmen", I) FillGaps ("Zweitstimmen", I) Next End Sub Sub FillGaps(table as String, column As Integer) Dim I As Integer Dim current_str As String Dim next_str As String Const MAX_NUM As Integer = 1800 Const ERSTE_ZELLE As Integer = 4 For I = ERSTE_ZELLE To MAX_NUM current_str = Worksheets(table).Cells(I, column).Value next_str = Worksheets(table).Cells(I + 1, column).Value If next_str = "" Then Worksheets(table).Cells(I + 1, column).Value = current_str End If Next End Sub
Alle Zeilen entfernen, die uninteressant sind (nur Prozentangaben interessieren)
Sub Main2() RemoveUnecessary("Erststimmen") RemoveUnnecessary("Zweitstimmen") End Sub Sub RemoveUnecessary(table as String) Dim I As Integer Dim current_str As String Dim next_str As String Dim column As Integer Const MAX_NUM As Integer = 1800 Const ERSTE_ZELLE As Integer = 4 column = 5 'CDU For I = ERSTE_ZELLE To MAX_NUM current_str = Worksheets(table).Cells(I, column).Value If InStr(1, current_str, ",") = 0 Or InStr(1, current_str, "(") > 0 Then 'remove line Worksheets(table).Rows(I).Delete End If Next End Sub
Ergebnisse 2009 ausgliedern in seperate Tabellen und in den 2013er Tabellen entfernen
Sub Main3() Extract2009 ("Erststimmen") Extract2009 ("Zweitstimmen") End Sub Sub Extract2009(table As String) Dim I As Integer Dim J As Integer Dim current_str As String Dim next_str As String Dim column As Integer Const MAX_NUM As Integer = 1800 Const ERSTE_ZELLE As Integer = 4 column = 1 J = 2 For I = ERSTE_ZELLE To MAX_NUM current_str = Worksheets(table).Cells(I, column).Value If current_str = "Ergebnis 2009 " Then 'copy Worksheets(table).Rows(I).Copy Destination:=Worksheets(table + " 2009").Rows(J) 'fill in the right voting station Worksheets(table + " 2009").Cells(J, column).Value = Worksheets(table).Cells(I - 1, column).Value J = J + 1 'remove line Worksheets(table).Rows(I).Delete End If Next End Sub