09. marts 2006 - 16:17Der 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:
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
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))
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)))
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
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.
I første omgang var løsningen baseret på det skitserede.
Her måske en løsning på ovenstående, hvis du er interesseret.
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.