• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

"Tellen" in Excel

Status
Niet open voor verdere reacties.

goofyos2

Gebruiker
Lid geworden
29 jan 2013
Berichten
38
Goedemiddag allemaal

Ik zit met een probleem waar ik niet uitkom... :-)

Ik heb het bestand als bijlage bijgevoegd.

In dit voorbeeld bestand dat op deze manier gegenereerd word, wil ik gaarne het volgende...

In kolom A staan de nummers en in kolom B staan onder Naam de gegevens...

In kolom A komt een nummer meerdere keren voor met elke keer een andere waarde in kolom B.
Voorbeeld:
Nummer Naam
145278003 A3
145278003 2.3
145277983 A2
145277983 2.6
145277973 A2
145277973 2.2
145277973 2.1


Aan het einde zou ik graag iets soortgelijks willen zien, indien mogelijk
Naam_1 Naam_2 Aantal
A3 2.3 getal
A2 2.6 getal
A2 2.2 getal
A2 2.1 getal
etc...

Ik hoop dat mijn probleem duidelijk is en dat er een oplossing voor is...

Alvast heel hartelijk bedankt


Mvrgr


Henk
 

Bijlagen

Ik snap eerlijk gezegd niet helemaal wat je bedoelt. Misschien moet je in je voorbeeldje ook het gewenste resultaat (met de hand) neerzetten, zodat we kunnen zien waar je naar toe wilt.
 
zo iets:
Code:
Sub test()
Dim Pvan As Range, Pnaar1 As Range, Pnaar2 As Range
Set Pnaar1 = [C1]
Set Pvan = [A2]
Do Until Pvan = ""
    Set Pnaar1 = Pnaar1(2, 1) '1 zakken
    Set Pnaar2 = Pnaar1(1, 2)  'er naast
    Pnaar1 = Pvan
    Do Until Pvan <> Pnaar1 Or Pvan = ""
        Pnaar2 = Pvan(1, 2)
        Set Pvan = Pvan(2, 1) 'naar beneden
        Set Pnaar2 = Pnaar2(1, 2) 'op zij
    Loop
Loop
End Sub
 
Octafish

Bedankt voor je reactie...

Ik zal proberen om het verduidelijken, maar dacht/hoopte dat het duidelijk was :-)

De uiteindelijke uitkomst/tellingen moet komen uit kolom B...

Als het goed is, staat in ieder geval bij elk nummer in kolom A, de tegenwaarde in kolom B, als voorbeeld A1/A2/A3 of B1/B2/B3 of C1/C2/C3 of ...
Tevens staat er bij het zelfde nummer in kolom A een andere waarde in kolom B, zoals 1.1 en 2.1 of 10.3. Dat zelfde nummer in kolom A kan meerdere keren voortkomen.

Als het kan, zou er aan het eind een overzicht moeten komen uit de waardes in kolom B

Naam_1 Naam_2 Aantal
A3 2.3 x-Aantal
A2 2.6 x-Aantal
A2 2.2 x-Aantal
A2 2.1 x-Aantal
etc...

Ik hoop dat het nu duidelijker is...
Alvast bedankt...
 
Wellicht dat de macro van Sylvester al genoeg helpt :).
 
zo iets:
Code:
Sub test()
Dim Pvan As Range, Pnaar1 As Range, Pnaar2 As Range
Set Pnaar1 = [C1]
Set Pvan = [A2]
Do Until Pvan = ""
    Set Pnaar1 = Pnaar1(2, 1) '1 zakken
    Set Pnaar2 = Pnaar1(1, 2)  'er naast
    Pnaar1 = Pvan
    Do Until Pvan <> Pnaar1 Or Pvan = ""
        Pnaar2 = Pvan(1, 2)
        Set Pvan = Pvan(2, 1) 'naar beneden
        Set Pnaar2 = Pnaar2(1, 2) 'op zij
    Loop
Loop
End Sub

Hallo Sylvester,

Hartelijk dank voor je snelle antwoord...

Zo te zien ben ik hier mee een eind op weg, alvast bedankt...!!!

Is er een mogelijkheid om de uitkomst uiteindelijk te laten tellen door Excel. Ik ben even bezig geweest om dmv draaitabellen een telling te genereren maar dat valt nog niet mee...

Thnx


Henkl
 
wat wil je geteld hebben ? en waar moet de uitkomst komen?
Sylvester

Uitkomst van jouw macro:
145276883 A2 6.2 1.4 1.1
145276853 A2 3.3 1.4
145276833 A2 6.2
145276783 A2 7.1 1.4
145276773 A2 1.2
145276763 A2 6.2 1.4


Dat ik bv na de laatste rij een opsomming krijg (bovenstaande als voorbeeld)
A2 1.1 1
A2 1.2 1
A2 1.4 4
A2 3.3 1
A2 6.2 3
A2 7.1 1

Alvast weer hartelijk dank...
 
zo iets?
Code:
Sub test()
Dim Pvan As Range, Pnaar1 As Range, Pnaar2 As Range, T As Long, D, L
Set D = CreateObject("scripting.dictionary")
Set Pnaar1 = [C1]
Set Pvan = [A2]
Do Until Pvan = ""
    Set Pnaar1 = Pnaar1(2, 1) '1 zakken
    Set Pnaar2 = Pnaar1(1, 2)  'er naast
    Pnaar1 = Pvan
    Do Until Pvan <> Pnaar1 Or Pvan = ""
        Pnaar2 = Pvan(1, 2)
        If D.Exists(CStr(Pnaar2)) Then
            D(CStr(Pnaar2)) = D(CStr(Pnaar2)) + 1
        Else
            D.Add CStr(Pnaar2), 1
        End If
        Set Pvan = Pvan(2, 1) 'naar beneden
        Set Pnaar2 = Pnaar2(1, 2) 'op zij
    Loop
Loop
Pnaar1.Select
Set Pnaar1 = Pnaar1.Offset(2, 1)
Pnaar1.Resize(D.Count) = WorksheetFunction.Transpose(D.keys)
Pnaar1.Offset(, 1).Resize(D.Count) = WorksheetFunction.Transpose(D.Items)
Pnaar1.Resize(D.Count, 2).SortSpecial
End Sub
 
@Sylvester

Hartelijk dank alweer...
Het is nog niet helemaal wat ik voor ogen heb... :-)

Dit is de uitkomst van jouw macro...
1.1 5
1.2 5
1.4 6
1.5 1
2.1 52
2.2 9
2.3 17
2.4 28
2.5 1
2.6 4
3.1 2
3.2 2
3.3 5
4.1 3
5.2 5
6.2 8
7.1 2
8.1 1
9.1 1
10.1 6
10.3 1
A1 66
A2 54
A3 59
B1 9

Wat ik echter graag zou willen hebben is hoe vaak komt de waarde bij
A1 1.1 voor ... In dit geval 2
A2 1.1 voor ... In dit geval 1
A3 1.1 voor ... In dit geval 2

Samen is dat dus de door jou getelde 1.1 -->5

Alweer hartelijk dank voor al het werk dat je er aan gedaan hebt...
 
@Sylvester


In Kolom A staan de volgnummers. In Kolom B staat de inhoud van de volgnummers...
Dus in kolom A staat hetzelfde volgnummer meerdere keren met in kolom B steeds een andere inhoud...
Echter in kolom B komt bij elk volgnummer in ieder geval de inhoud van "A1 of A2 of A3 of B1 etc" voor.
Tevens staat bij het zelfde volgnummer (kolom A) meestal ook een andere inhoud in kolom B, zoals bv. 1.1 of 1.2...

Voorbeeld na uitkomst van jouw 1ste macro:
Kolom A B C D E
145276883 A2 6.2 1.4 1.1
145276853 A2 3.3 1.1
145276833 A2 6.2
145276783 A2 7.1 1.4
145276773 A2 1.2
145276763 A2 1.4 6.1

Bovenstaande uitkomst is heel goed.

Ik zou gaarne zien dat de uitkomsten van kolom B en de uitkomsten onder kolom C t/m E bij elkaar geteld worden aan het eind...
Dus voorbeeld:
A2 (kolom B) 1.1 (kol. D+E) 2x
A2 (kolom B) 1.4 (kol. C+D) 3x
A2 (kolom B) 1.2 (kolom C) 1x
A2 (kolom B) 3.3 (Kolom C) 1x
A2 (kolom B) 6.2 (kolom C) 2x
A2 (kolom B) 6.1 (kolom D) 1x
A2 (kolom B) 7.1 (kolom C) 1x

EDIT: Het komt ook voor dat kolom C niet altijd gevuld is en dat alleen kolom B gevuld is...

Alvast hartelijk bedankt voor de reacties...


Mvrgr

Henk
 
Laatst bewerkt:
de macro kijkt naar de nummer overgang
soms is de eerst code geen letter maar een cijfer
de dubbele lettercodes (A1 A1) zijn er uit gefilterd.
Code:
Sub test()
    Dim Pvan As Range, Pnaar1 As Range, Pnaar2 As Range, D, Temp1 As String, Temp2 As String
    Set D = CreateObject("scripting.dictionary")
    Set Pvan = [A2]
    Set Pnaar1 = [C2]
    Set Pnaar2 = Pnaar1(1, 2)  'er naast
    Do Until Pvan = ""
        Pnaar1 = Pvan    'nummer overnemen
        Pnaar2 = Pvan(1, 2)    'eerste waarde over nemen
        Temp1 = CStr(Pnaar2)
        Do Until Pvan <> Pnaar1 Or Pvan = ""
            Pnaar2 = Pvan(1, 2)
            If Temp1 <> CStr(Pnaar2) Then
                Temp2 = Temp1 & " " & CStr(Pnaar2)
                If D.Exists(Temp2) Then
                    D(Temp2) = D(Temp2) + 1
                Else
                    D.Add Temp2, 1
                End If
            End If
            Set Pvan = Pvan(2, 1)    'naar beneden
            Set Pnaar2 = Pnaar2(1, 2)    'op zij
        Loop
        Set Pnaar1 = Pnaar1(2, 1)    '1 zakken
        Set Pnaar2 = Pnaar1(1, 2)  'er naast
    Loop
    Pnaar1.Select
    Set Pnaar1 = Pnaar1.Offset(1, 1)
    Pnaar1.Resize(D.Count) = WorksheetFunction.Transpose(D.keys)
    Pnaar1.Offset(, 1).Resize(D.Count) = WorksheetFunction.Transpose(D.Items)
    Pnaar1.Resize(D.Count, 2).SortSpecial
End Sub
 
@Sylvester

Alvast hartelijk dank voor je hele snelle reactie...
Ik ga er mee aan de slag en je hoort van mij


Mvrgr


Henk
 
@Sylvester

Nogmaals hartelijk dank...
Hij gaat "bijna" perfect met wat ik voor ogen had...
Nog a.u.b. een hele "kleine" aanpassing, indien mogelijk... :-)


Deze laatste macro zet nu bv.
A1 en 1.1 in een zelfde cel met het aantal in de naastliggende kolom/cel.
Zou A1 en 1.1 beide in een aparte cel kunnen?
In het "echt" staat er nog informatie achter de A1 en de 1.1...

Dus indien mogelijk aparte cel/kolommen:

A1 1.1 2

Alvast hartelijk bedankt


Mvrgr


Henk
 
zo iets?
Code:
Sub test()
    Dim Pvan As Range, Pnaar1 As Range, Pnaar2 As Range, D, Temp1 As String, Temp2 As String, Temp
    Set D = CreateObject("scripting.dictionary")
    Set Pvan = [A2]
    Set Pnaar1 = [C2]
    Set Pnaar2 = Pnaar1(1, 2)  'er naast
    Do Until Pvan = ""
        Pnaar1 = Pvan    'nummer overnemen
        Pnaar2 = Pvan(1, 2)    'eerste waarde over nemen
        Temp1 = CStr(Pnaar2)
        Do Until Pvan <> Pnaar1 Or Pvan = ""
            Pnaar2 = Pvan(1, 2)
            If Temp1 <> CStr(Pnaar2) Then
                Temp2 = Temp1 & "|" & CStr(Pnaar2)
                If D.Exists(Temp2) Then
                    D(Temp2) = D(Temp2) + 1
                Else
                    D.Add Temp2, 1
                End If
            End If
            Set Pvan = Pvan(2, 1)    'naar beneden
            Set Pnaar2 = Pnaar2(1, 2)    'op zij
        Loop
        Set Pnaar1 = Pnaar1(2, 1)    '1 zakken
        Set Pnaar2 = Pnaar1(1, 2)  'er naast
    Loop
    Pnaar1.Select
    Set Pnaar1 = Pnaar1.Offset(1, 1).Resize(D.Count)
    Pnaar1 = WorksheetFunction.Transpose(D.keys)
    Pnaar1.Offset(, 2) = WorksheetFunction.Transpose(D.Items)
    Pnaar1.Resize(, 3).SortSpecial
    For Each Pvan In Pnaar1
        Temp = Split(Pvan, "|")
        Pvan = Temp(0)
        Pvan(1, 2) = Temp(1)
    Next
End Sub
 
@Sylvester

Heel heel hartelijk dank...

Ik denk dat het mogelijk aan mijn instellingen ligt maar de uitkomst van de macro geeft tussen de getallen een komma in plaats van een punt.
Dus 1,1 ipv 1.1..

Mvrgr


Henk
 
de macro zet de cel eigenschappen nu eerst op tekst
Code:
Sub test()
    Dim Pvan As Range, Pnaar1 As Range, Pnaar2 As Range, D, Temp1 As String, Temp2 As String, Temp
    Set D = CreateObject("scripting.dictionary")
    Set Pvan = [A2]
    Set Pnaar1 = [C2]
    Set Pnaar2 = Pnaar1(1, 2)  'er naast
    Do Until Pvan = ""
        Pnaar1 = Pvan    'nummer overnemen
        Pnaar2 = Pvan(1, 2)    'eerste waarde over nemen
        Temp1 = CStr(Pnaar2)
        Do Until Pvan <> Pnaar1 Or Pvan = ""
            Pnaar2 = Pvan(1, 2)
            If Temp1 <> CStr(Pnaar2) Then
                Temp2 = Temp1 & "|" & CStr(Pnaar2)
                If D.Exists(Temp2) Then
                    D(Temp2) = D(Temp2) + 1
                Else
                    D.Add Temp2, 1
                End If
            End If
            Set Pvan = Pvan(2, 1)    'naar beneden
            Set Pnaar2 = Pnaar2(1, 2)    'op zij
        Loop
        Set Pnaar1 = Pnaar1(2, 1)    '1 zakken
        Set Pnaar2 = Pnaar1(1, 2)  'er naast
    Loop
    Pnaar1.Select
    Set Pnaar1 = Pnaar1.Offset(1, 1).Resize(D.Count)
    Pnaar1 = WorksheetFunction.Transpose(D.keys)
    Pnaar1.Offset(, 2) = WorksheetFunction.Transpose(D.Items)
    Pnaar1.Resize(, 3).SortSpecial
    Pnaar1.Resize(, 2).NumberFormat = "@"
    For Each Pvan In Pnaar1
        Temp = Split(Pvan, "|")
        Pvan = (Temp(0))
        Pvan(1, 2) = (Temp(1))
    Next
End Sub
 
Beste Sylvester,


Mag ik je heel hartelijk danken voor al je inspanningen en snelle hulp...

Bedankt!!!!


Mvrgr


Henk
 
@Sylvester

Ik heb de macro nu in het "echt" gedraaid.

Het blijkt dat in het bronbestand niet alles goed staat...

In het door mijn aangeleverde bestand,
Kolom_A Kolom_B
145278003 A3
145278003 2.3
145277983 A2
145277983 2.6
begint elk volgnummer onder kolom_A , eerst in kolom_B met in dit geval een waarde A3 of A2.

In het grotere bronbestand is dat helaas lang niet altijd zo
Kolom_A Kolom_B (fictief voorbeeld)
145278003 2.3
145278003 A3
145277983 2.6
145277983 A2
of staat de A*/B*/C*/D* pas onder kolom_E....

Hierdoor werkt de macro wel maar niet met het gewenste resultaat... :-(

Is er iets dat ik zelf kan doen of kan dat eventueel in de macro geregeld worden...?

Verder zou indien mogelijk als de
Kolom_A Kolom_B (fictief voorbeeld)
145278003 A3
145277983 A2
en er geen waarde onder kolom_C staat, dat de macro zelf bv. de tekst Algemeen in kolom C plaats,
zodat aan het einde deze ook meegeteld worden.

A2 Algemeen 3x
A3 Algemeen 12x


Sorry voor deze nieuwe e-mail, maar ik hoop dat je me verder kunt/wilt helpen.

Alweer heel hartelijk bedankt...

Mvrgr

Henk
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan