02. november 2010 - 09:27Der er
13 kommentarer og 1 løsning
Parti stemmer i matrix
Jeg sidder og leger lidt med excel og vil gerne efter jeg har opstillet vælgernes stemmer efter STØRSTE, at parti navnet kommer udfra hvor deres antal stemmer står.
F.eks. Venstre har flest stemmer med 15999 og SF har andet flest stemmer osv.
Hvordan får jeg den automatisk til at skrive navnet ud fra deres antal stemmer?
Parti: Antal stemmer: Socialdemokratiet 12909 Det Radikale Venstre 1058 Det Konservative Folkeparti 4733 SF - Socialistisk Folkeparti 7402 Silkeborg Borgerliste 593 Liberal Alliance 243 Kristendemokraterne 350 Dansk Folkeparti 3335 Venstre, Danmarks Liberale Parti 13392 Enhedslisten - De Rød-Grønne 916
Det har jeg så stilt op, så venstre ligger nr.1 med flest stemmer.
Således. Men istedet for jeg selv skal skrive navnet ud for, hvem der nu har fået de forskellige stemmer, er det så muligt at få excel, til selv at finde ud af hvilket parti/navn der har fået det antal stemmer? Fx. så den selv skriver venstre, ud for de 13392 stemmer?
Jeg har selv hentet alle info fra kmdvalg.dk/kv/2009/adk.htm, men har selv overført infoen til excel. Så excal skal hente infoen fra det jeg har skrevet ind, med de antal stemmer. Som jeg har vist over, at venstre har fået 13392, om det så er muligt at indføre det navn ved siden af deres antal stemmer.
Og skal lige sige at det er ud fra D'hondske valgmetode.
Jeg har brugt funktionen STØRSTE, til at få stemmerne sat op også er det jeg selv skal skrive alle partierne ind, men leder efter en funktion der "kæder" partiet sammen med dens stemmer.
Rem Koden er indsat i module1 Rem Brugerdefineret formel: Rem =findPartiet(E15;"C3:AG12";"B")
Dim ræk As Long, parti As String Public Function findPartiet(stemmeTal, søgIOmråde, hentFraKolonne) ræk = findRække(stemmeTal, søgIOmråde) If ræk > 0 Then findPartiet = Range(hentFraKolonne & ræk) Else findPartiet = "?" End If End Function Private Function findRække(stemmeTal, område) tal = Format(stemmeTal, "#,###,###,##0")
With ActiveSheet.Range(område) Set c = .Find(tal, LookIn:=xlValues, LookAt:=xlWhole) If Not c Is Nothing Then findRække = c.Row Else findRække = 0 End If End With Exit Function End Function
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.