Toon posts:

[Excel] Hoe sorteer ik dit ?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb de volgende data in twee kolommen:

1-jan -133.75
1-jan -40.40
1-jan -15.70
3-jan -54.03
3-jan -24.80
4-jan 176.62
4-jan -41.17
4-jan -15.53
5-jan 63.45
6-jan -149.95
6-jan -49.00
6-jan -21.27
6-jan -13.00
6-jan -14.99

Die wil ik als volgt sorteren:

1-jan -133.75 -40.40 -15.70
3-jan -54.03 -24.80
4-jan 176.62 -41.17 -15.53
5-jan 63.45
6-jan -149.95 -49.00 -21.27 -13.00 -14.99

Dus alle data van 1-jan wil ik in de volgende x kolommen hebben (1-jan dus drie stuks in dit geval en 6-jan 5 stuks in dit geval). Lay-out in deze vraag sucks, ik weet niet hoe ik dit beter moet krijgen....sorry.

Ik heb zelf al wat geprobeerd met macro's maar ik kom er niet uit. Iemand een suggestie of oplossing ?

Verwijderd

Volgens mij kan je dat het beste doen met de excel-funtie 'subtotalen' in het menu data.

Verwijderd

Topicstarter
Verwijderd schreef op maandag 20 juni 2005 @ 12:32:
Volgens mij kan je dat het beste doen met de excel-funtie 'subtotalen' in het menu data.
Met die functie kan ik toch alleen maar berekeningen uitvoeren met de data....dus niet verplaatsen lijkt me ?
Ik zal iets van een macro moeten maken in combinatie met een transponeer functie o.i.d......maar hoe ?

[ Voor 19% gewijzigd door Verwijderd op 20-06-2005 12:42 ]


  • LtMarx
  • Registratie: December 2003
  • Laatst online: 03:29

LtMarx

ATTENTIOOOON!!!

misschien een macrootje met een loop erin die elke regel checkt op data van allebei de kolommen en de eerste kolom checkt op overeenkomst met de data in de vorige kolom. Is dit waar dan schrijft hij de data van de 2e kolom er achter. Is dit niet waar dan de data schrijven op de volgende regel.

zoiets?

geen id of er een excel functie voor is btw

[ Voor 8% gewijzigd door LtMarx op 20-06-2005 12:52 ]


Verwijderd

draaitabel? (pivot table)

Verwijderd

Topicstarter
Is dit een mogelijke oplossing of weet je dit ook niet zeker ?
Ik wil geen energie steken in "oplossingen" die niet blijken te werken.....is het even te warm voor vandaag.... 8)7

Verwijderd

wacht dan tot het wat frisser is (just kidding :) ). dit is een mogelijke oplossing als je niet met vba overweg kan. je kan de draaitabel per datum maken en dan daarna eventueel nog kopieren plakken speciaal waarden om het boeltje op te smukken.

Verwijderd

Topicstarter
Ik krijg het niet voor mekaar, ik zal wel wat fout doen........
Ik krijg alleen maar de totalen per datum te zien als ik een draaitabel maak.
Wat ik in feite wil is gewoon een hersortering per datum en geen rekenkundige bewerkingen.

Iemand anders een oplossing (of uitleg) ?

[ Voor 9% gewijzigd door Verwijderd op 21-06-2005 14:39 ]


Verwijderd

probeer deze macro eens.
je zult nog wel wat aanpassingen moeten doen aan de plaats en omvang van je regels.
hij werkt met je voorbeeld als je dat in Excel zet en begint op A1.

Sub Macro1()
'
' Macro1 Macro
' De macro is opgenomen op 21-6-2005 door Jac. Waalen.
'

'
ra = 1
ca = 1
rb = 1
cb = 1
rc = 1
cc = 1
rd = 1

For i = 1 To 15
If Cells(ra, ca) = Cells(ra + 1, ca) Then
Cells(rd + 1, cb + 1).Cut Destination:=Cells(rc, cc + 2)
Rows(ra + 1).Delete
cc = cc + 1
Else
ra = ra + 1
rb = rb + 1
rc = rc + 1
rd = rd + 1
cc = 1
End If
Next i

End Sub

Verwijderd

Topicstarter
Hoi Jac.

Bedankt voor je macro....hij werkt perfect !!!

Heb je (als je tijd en zin hebt) ook een macro voor me die waneer er in de tweede kolom niets staat, dat ie dan de betreffende row delete. Ik heb wat gespeeld met een deel van bovenstaande macro, maar die werkt alleen als je maar 1 rij hebt met niets in de tweede kolom. Als er in de eerstvolgende rijen ook niets staat in de tweede kolom dan werkt het niet.

Bijvoorbeeld bij dit werkt het dan niet:

1-jan -133.75
1-jan -40.40
1-jan
3-jan
3-jan
4-jan 176.62
4-jan -41.17
4-jan
5-jan 63.45
6-jan
6-jan -49.00
6-jan
6-jan -13.00
6-jan

Dan gooit ie alleen de 3de rij weg en niet de 4de, 5de etc. Hij maakt er dan dit van:

1-jan -133.75
1-jan -40.40
3-jan
3-jan
4-jan 176.62
4-jan -41.17
4-jan
5-jan 63.45
6-jan
6-jan -49.00
6-jan
6-jan -13.00
6-jan

[ Voor 14% gewijzigd door Verwijderd op 22-06-2005 19:34 ]


Verwijderd

Als je bv je data in kolom C en D hebt, kun je de volgende code gebruiken om het in kolom F, G en verder te krijgen.

Visual Basic:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Sub Sorteer()
Dim a As Integer
Dim b As Integer
Dim c As Integer
a = 0
b = 0
c = 0
Do Until Worksheets(1).Cells(1 + a, 3) = ""
If a = 0 Then
Worksheets(1).Cells(1 + b, 6) = Worksheets(1).Cells(1 + a, 3)
Worksheets(1).Cells(1 + b, 6).NumberFormat = Worksheets(1).Cells(1 + a, 3).NumberFormat
Worksheets(1).Cells(1 + b, 7 + c) = Worksheets(1).Cells(1 + a, 4)
Else 'a > 0
    If Worksheets(1).Cells(1 + a, 3) > Worksheets(1).Cells(a, 3) Then
    Worksheets(1).Cells(2 + b, 6) = Worksheets(1).Cells(1 + a, 3)
    Worksheets(1).Cells(2 + b, 6).NumberFormat = Worksheets(1).Cells(1 + a, 3).NumberFormat
    b = b + 1
    c = 0
    Worksheets(1).Cells(1 + b, 7 + c) = Worksheets(1).Cells(1 + a, 4)
    Else
    c = c + 1
    Worksheets(1).Cells(1 + b, 7 + c) = Worksheets(1).Cells(1 + a, 4)
    End If
End If
a = a + 1
Loop
End Sub

Ik hoop dat dit is wat je bedoelt!

Verwijderd

Topicstarter
Pfffffffffff......ik vond de oplossing van Jac. iets makkelijker te begrijpen, en die werkt voor mij al.

Maar ehhhhh...bedankt Ventje....ik zal ook eens naar jouw oplossing kijken. Kan geen kwaad, ga ik ook eens iets van Visual Basic begrijpen.....

Weet jij evt. nog een oplossing voor mijn laatste berichtje hierboven ?

[ Voor 12% gewijzigd door Verwijderd op 22-06-2005 19:49 ]


Verwijderd

Zal er eens naar kijken.
Wat betreft mijn macro, ten opzichte van die van Jac.: vooral voor grote hoeveelheden data wil bewerken, moet je zien te vermijden dat je (opgenomen-macro-style) gaat, cutten, copy-en, plakken en deleten. Maar dat is mijn bescheiden mening.

edit:

Moet niet zo moeilijk zijn, maar lukte me niet zo snel en ik heb nu geen tijd meer. Sorry, succes ermee!

[ Voor 20% gewijzigd door Verwijderd op 22-06-2005 20:49 ]


Verwijderd

Het was ook niet bedoeld om een volledig perfect werkend VB script te maken.
Even laten zien hoe je het aan kunt pakken en dan verder zelf uitbreiden/vervolmaken.

Dit voorbeeldje beantwoorde exact aan de vraag, uitbreidingen mag je zelf maken, leer je vanzelf VB kennen. Veel in de help zoeken, F1 gebruiken etc. Van iedere functie zijn voorbeelden.

Succes!

Jac.

  • Boss
  • Registratie: September 1999
  • Nu online

Boss

+1 Overgewaardeerd

En toch... met een pivottable was je zo klaar geweest. Dat is namelijk de oplossing voor dit soort zaken. Had je helemaal geen makro nodig gehad :)

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it is an aesthetic experience much like composing poetry or music.

Pagina: 1