Avatar billede haam1976 Nybegynder
09. marts 2006 - 16:17 Der er 10 kommentarer og
1 løsning

Avanceret sortering

Jeg har et regneark der indeholder 6 kolonner med kontonumre og beløb. Jeg skal have det samme kontonumrmer (samt beløbet) til at stå overfor hinanden. Der er 900 linier, så det er for besværligt at gøre i hånden, da kolonnerne ikke indeholder nøjagtig de samme kontonumre. Problemet kan skitseres således:

Oprindelig:
Kontonr Beløb  Kontonr Beløb  Kontonr Beløb
1      5      1      14    2      23
2      9      3      8
3      15

Sorteringen skal ende med at give dette resultat, sådan at jeg kan summere de enkelte kontonumre yderst til højre:
Kontonr Beløb  Kontonr Beløb  Kontonr Beløb
1      5      1      14   
2      9                      2      23
3      15      3      8

Håber nogen kan hjælpe, om det bliver vba eller noget andet er ligegyldigt.
Mvh.
Harald-Åge
Avatar billede mrjh Novice
09. marts 2006 - 16:33 #1
Skal de enkelte kontonr. bare summeres eller skal den samtidig vise sorteringen som du skitserer nederst ?
Avatar billede haam1976 Nybegynder
09. marts 2006 - 16:36 #2
Den skal vise sorteringen, ellers var det vel også ligetil, men sådan skal det ikke være... Kort sagt, det skal se ud som det skitserede nedenfor.

Avatar billede mrjh Novice
09. marts 2006 - 16:56 #3
Dataområde = A2:F4
Indsæt denne i A9 og kopier ned
=MINDSTE($A$2:$A$4;RÆKKE()-RÆKKE(A$8))
Indsæt denne i B9 og kopier ned
=HVIS(ER.FEJL(SAMMENLIGN($A9;A$2:A$4;0));"";INDEKS(A$2:B$4;SAMMENLIGN($A9;A$2:A$4;0);0))
Indsæt denne i C9 og kopier ned
=HVIS(ER.FEJL(SAMMENLIGN($A9;$C$2:$C$4;0));"";INDEKS($C$2:$C$4;SAMMENLIGN($A9;$C$2:$C$4;0);0))
Indsæt denne i D9 og kopier ned
=HVIS(ER.FEJL(SAMMENLIGN($A9;C$2:C$4;0));"";INDEKS(C$2:D$4;SAMMENLIGN($A9;C$2:C$4;0);0))
Indsæt denne i E9 og kopier ned
=HVIS(ER.FEJL(SAMMENLIGN($A9;$E$2:$E$4;0));"";INDEKS($E$2:$E$4;SAMMENLIGN($A9;$E$2:$E$4;0);0))
Indsæt denne i F9 og kopier ned
=HVIS(ER.FEJL(SAMMENLIGN($A9;E$2:E$4;0));"";INDEKS(E$2:F$4;SAMMENLIGN($A9;E$2:E$4;0);0))
Avatar billede mrjh Novice
09. marts 2006 - 17:00 #4
Indsæt denne i A9 istedet for og kopier ned, så undgår du en fejlværdi hvis kontonr. er tomt:
=HVIS(ER.FEJL(MINDSTE($A$2:$A$4;RÆKKE()-RÆKKE(A$8)));"";MINDSTE($A$2:$A$4;RÆKKE()-RÆKKE(A$8)))
Avatar billede haam1976 Nybegynder
09. marts 2006 - 19:49 #5
Mange tak, det virker efter hensigten.

Jeg surfer lidt mere rundt på siden og på et eller andet tidspunkt (snart) finder jeg vel ud af hvordan jeg giver dig dine points.

Avatar billede haam1976 Nybegynder
09. marts 2006 - 20:00 #6
Smid et svar, så kommer din points!

Avatar billede mrjh Novice
09. marts 2006 - 20:36 #7
Selv tak og et svar c",)
Avatar billede oyejo Nybegynder
10. marts 2006 - 17:08 #8
nå har jeg slitt med disse formler ganske lenge, men jeg får det ikke til å virke.
virker koden uten problemer hos deg haam1976?
Avatar billede oyejo Nybegynder
10. marts 2006 - 18:06 #9
hva med denne vba-løsningk, er det mulig å benytte den?

Sub SorterKonto()
  Dim tmpTab() As Variant, konto() As Variant
 
  tmpTab() = Range(Cells(2, 1), Cells(Cells(Rows.Count, 1).End(xlUp).row, 6))
 
  For n = 1 To 2
    lkont = -1
    For a = 1 To UBound(tmpTab, 1)
      For b = 1 To 5 Step 2
        If Not (tmpTab(a, b) = tmp Or IsEmpty(tmpTab(a, b))) Then
          lkont = lkont + 1
          tmp = tmpTab(a, b)
        End If
        If n = 2 And Not IsEmpty(tmpTab(a, b)) Then
          konto(lkont, b - 1) = tmpTab(a, b)
          konto(lkont, b) = tmpTab(a, b + 1)
        End If
      Next
    Next
    If n = 1 Then ReDim konto(lkont, 6)
  Next
 
  For n = 0 To UBound(konto, 1)
  konto(n, 6) = konto(n, 1) + konto(n, 3) + konto(n, 5)
  Next
  Cells(1, 7).Value = "TOTAL"
  Range(Cells(2, 1), Cells(UBound(konto, 1) + 2, 7)) = konto
End Sub
Avatar billede haam1976 Nybegynder
13. marts 2006 - 10:04 #10
Hej oyejo

mrjh's forslag virker fint! Dit giver til gengæld et spørjst resultat hvor rækkerne blot rykker sig i forhold til hinanden således at ingen af kontonumrene står ud for hinanden, samt at der ingen sortering sker, de rykker sig bare.

Hvis du har forslag til ændringer, så skriv igen, jeg er altid åben for forslag.

Avatar billede mrjh Novice
13. marts 2006 - 13:14 #11
I første omgang var løsningen baseret på det skitserede.

Her måske en løsning på ovenstående, hvis du er interesseret.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester