Avatar billede dan_n Nybegynder
19. oktober 2010 - 14:55 Der er 4 kommentarer og
1 løsning

Samle data fra flere rækker i en kolonne

Hej

Jeg vil høre om der er nogle der kan hjælpe mig med at løse et lille problem.

Jeg har en række kunder som hver har flere rækker i min database baseret på nogle forskellige atributter.

fxc

Kunde nr  |  værdi |
1        |    a    |
1        |    b    |
1        |    c    |
2        |    c    |
3        |    e    |
3        |    a    |

Ovenstående tabel kunne jeg godt tænkte mig at justere/merge lidt på således det kommer til at se således ud

Kunde nr  |  værdi |
1        |    abc  |
2        |    c    |
3        |    ea  |

Eller
Kunde nr  |  værdi  |
1        |    a,b,c  |
2        |    c      |
3        |    e,a    |

Er der nogle der har en god ide til hvordan dette kan gøres nemmeste ?
Avatar billede supertekst Ekspert
19. oktober 2010 - 15:21 #1
Lidt VBA vil kunne klare det.

Hvilke datatype er værdi?
Avatar billede dan_n Nybegynder
20. oktober 2010 - 08:21 #2
Det lyder godt. Har du et link eller lig start hjælp ?

Datatypen er tekst og egentlig må det gerne samlet i en ny kolonne, hvis det er lettere.
Avatar billede supertekst Ekspert
20. oktober 2010 - 08:27 #3
Jeg skal nok skrive makroen. Vil du foretrække at værdierne samles i en kolonne eller over flere i samme række?

Vender tilbage senere..
Avatar billede dan_n Nybegynder
20. oktober 2010 - 09:32 #4
Super!
Jeg vil foretrække dem samlet i en kolonne
Avatar billede supertekst Ekspert
20. oktober 2010 - 11:00 #5
NB: De samlede værdier og kundenr skrives i kolonne C & D
Kode indsættes underrelevante ark (højreklik / vis programkode)
Hvis ønskeligt kandu sende en mail - så returnerer jeg min model.
@-adresse under profil.
------------------------


Dim antalRækker As Long, kundeNr, ptKundeNr, ræk As Long, værdier As String, ptVærdi As String
Dim nyRæk As Long
Public Sub fraRækkerTilKolonne()
    antalRækker = ActiveCell.SpecialCells(xlLastCell).row
    nyRæk = 2
   
    For ræk = 2 To antalRækker
        ptKundeNr = Range("A" & ræk)
        ptVærdi = Range("B" & ræk)
       
        If ræk = 2 Then
            kundeNr = ptKundeNr
            værdier = ptVærdi
        Else
            If ptKundeNr = kundeNr Then
                værdier = værdier + ptVærdi
            Else
                Range("C" & nyRæk) = kundeNr
                Range("D" & nyRæk) = værdier
               
                kundeNr = ptKundeNr
                værdier = ptVærdi
               
                nyRæk = nyRæk + 1
            End If
        End If
    Next ræk
   
Rem sidste kunde
    Range("C" & nyRæk) = kundeNr
    Range("D" & nyRæk) = værdier
   
End Sub
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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