03. oktober 2003 - 08:28Der er
21 kommentarer og 1 løsning
Rangering af byer, så de står i rækkefølge
Hej Ekspert:-)
Jeg har i kolonne A73:A87 15 byer stående. I kolonne B:H ud for byerne er der nogle placeringer i forskellinge konkurrencer. Placeringerne tælles sammen i J-kolonnen, så man kan sige at den by, der har mindst point er samlet vinder. I I-kolonnen er der vha. funktionen Plads()ud fra J-kolonnen, så den by der har midst point får et 1-tal. 2. pladsen får et 2-tal osv. Jeg har to udfordringer: Jeg vil gerne have rangeret byerne, så de står med nr. et først og nr. 15 til sidst. Hvis 2 eller flere byer har samme point, skal de have samme placering og den by, og de byer der kommer efter skal have en placering, der passer med antal byer foran. Ex: X-by og Y-by har på første pladsen 15 point (begge 1. pladsen). Z-by har på næste plads 16 point (skal have 3. pladsen). Resultatet må gerne skulle laves ud fra disse celler og så placeres et andet sted i regnearket.
Du skal have fat i Data, Sorter Først markerer du hele det område du vil arbejde med (eller blot een celle i området, hvis det er "uden huller"). Så vælger du data, sorter
Så vidt jeg kan se tager funktion Plads() højde for din problematik med flere byer med samme placering. Du skal blot sortere efter kolonnen med placering i stigende orden.
Plads() giver i sig selv byer med samme pointtal samme nummer, og den næste by det næste højere nummer. Så hvis du har Byerne i kolonne A, pointene i kolonne b:i, og sammentællingen i J, kan du bruge denne PLADS() formel i K: =PLADS(J1;$J$1:$J$151). Derfter sorterer du listen efter K-kolonnen.
Løsningen lyder ok, hvis det ikke var fordi vi vil have at rangeringen foregår automatisk, så jeg ikke skal ind og gøre noget selv. Årsagen er, at jeg har omkring 350 forskellige rangeringer!!!
jkrons> Jeg har prøvet at ændre din makro så den passer til mit regneark. Jeg har følgende problemer/spørgsmål: Hvad gør 3. linje: 'Range("A1:C5").Select? Og jeg år en komplieringsfejl på 2. sidste linje: DataOption1:=xlSortNormal! Hvad kan årsagen være?
Jeg prøver at redegøre for fremgangsmåden her. Prøv at indtaste følgende slavisk:
1) Skriv følgende i celle A1:A13 By Esbjerg København Århus Ålborg Odense Assens Randers Kolding Vejle Skagen Padborg Sønderborg
2) Skriv point i celle B1:B13 Point 56 89 14 6 89 6 67 64 82 12 63 49
3) I celle C2 beregnes nu pladsen med følgende formel: =PLADS(B2;$B$2:$B$13;1)+(RÆKKE()/10000) Rækken kopieres ned til og med C13.
4) I celle D2 skal vi igen bruge byen til et senere opslag. Skriv =A2 og kopier cellen ned til og med D13
5) Og nu til selve resultattabellen. Indsæt følgende i celle F2 for at få sorteret resultaterne =MINDSTE($C$2:$C$13;RÆKKE()-1) Kopier formlen ned til og med F13.
6) Så mangler vi bare opslaget, hvor vi overfører by-navnet: I celle G2 skrives følgende: =LOPSLAG(F2;$C$2:$D$13;2;FALSK) Kopier cellen ned til og med G13.
Håber du er med hele vejen :-) Skriv evt. relevante overskrifter i række 1.
Fordelen ved en formel frem for VBA-kode er, at der ikke skal trykkes på en knap eller lignende, når tabellen skal opdateres. Men det er selvfølgelig en smagssag.
Jeg kan godt se at Jan's model ar simplere. Men for trods alt lige at svafre på dit spørgsmål, angiver 3. linie det område, der skal kopieres.
Kompileringsfejlen kan skyldes et linjeskift. Prøv skrive hele den foregående linje og denne ud i et. Det vises sikkert ikke rigtigt her. xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal
Jeg har lige lavet en forbedring af modellen. Formlerne i D-kolonnen kan undlades (slettes). Det kan nemlig godt lade sig gøre at lave et "omvendt" LOPSLAG, hvor resultat i opslagsformlen (her by-navnet) ligger til venstre for opslagsværdien.
Formlen i G2 skal så i stedet hedde: =INDIREKE(ADRESSE(RÆKKE($C$2:$C$13)+SAMMENLIGN(F2;$C$2:$C$13;0)-1;KOLONNE(A:A))) Formlen kopieres ned til og med G13.
Håber ikke forvirringen er ved at være for stor, men som sagt har jeg arket liggende til interesserede.
Der er også en tyrkfejl i den sidste formel. INDIREKE = INDIREKTE.
Synes godt om
Ny brugerNybegynder
Din løsning...
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.