Avatar billede redbulldk Juniormester
11. februar 2008 - 20:46 Der er 4 kommentarer og
1 løsning

Opsplitning af kolonne til en matrix

Hejsa

Jeg har et regneark, hvor jeg skal en kolonne lande og en anden kolonne med produkter.

Kolonnen med produkter, vil jeg gerne have opsplittet i en matrix, hvor matrix’sen har faste kolonne overskrifter og hvor produkterne f.eks. er markeret med ”x”.

Grunddataene ser således ud, hvor ”-” symboliser kolonne adskillelse.

Danmark- søm;tegnestifter; tape
Tyskland-tape
Sverige-tape;plader
..
..

Outputtet der ønskes er herefter

Land-søm-tegnestifter-tape-plader
Danmark-”x”-”x”-”x”-””
Tyksland-””-””-”x”-””
Sverige-””-””-”x”-”x”

Kan det lade sig gøre?
Avatar billede supertekst Ekspert
11. februar 2008 - 23:33 #1
Koden indsættes i Data-arket:

Dim antalRæk, mRæk1, mrækX
Sub produktMatrix()
    antalRæk = findAntalRækker
    mRæk1 = antalRæk + 2
    mrækX = mRæk1 + 1
   
    findProdukter
End Sub
Private Function findAntalRækker()
    findAntalRækker = Cells(Rows.Count, 1) _
      .End(xlUp).Offset(1, 0).Row - 1
End Function
Private Sub findProdukter()
Dim produkt
    Cells(mRæk1, 1) = "Land"
   
    For ræk = 1 To antalRæk
        Cells(mrækX, 1) = Cells(ræk, 1)
        For kol = 2 To 240
            produkt = Cells(ræk, kol)
            If produkt = "" Then
                mrækX = mrækX + 1
                Exit For
            End If
           
            findesProdukt produkt, ræk
        Next kol
    Next ræk

End Sub
Private Sub findesProdukt(produkt, ræk)
    For kol = 2 To 240
        If Cells(mRæk1, kol) = produkt Then
            Cells(mrækX, kol) = "X"
            Exit Sub
        Else
            If Cells(mRæk1, kol) = "" Then
                Cells(mRæk1, kol) = produkt
                Cells(mrækX, kol) = "X"
                Exit Sub
            End If
        End If
    Next kol
End Sub
Avatar billede excelent Ekspert
12. februar 2008 - 06:12 #2
Avatar billede redbulldk Juniormester
12. februar 2008 - 16:16 #3
Hej supertekst og excelent

Supertekst, den funger ikke lige som jeg ønskede.

excelent, funger glimrende og nemt. Med dine demo data funger det uden problemer, dog når jeg har mange rækker (over 100) med mine egne data, kommer der kolonne overskrift, men der kommer ingen krydser. 

Ellers kan du ikke sende et ”svar”, sådan at jeg kan tildele dig dine point?

Og tak til Jer begge for indsatsen.
Avatar billede excelent Ekspert
12. februar 2008 - 17:50 #4
ok velbekom
Har lige testet med ca 200 rækker,- virker ok her
Får du nogen fejlmedd. eller lign ?
Avatar billede redbulldk Juniormester
13. februar 2008 - 09:45 #5
Nej jeg får ingen fejlmeddelelse, heller ikke når jeg dublerer dine data til over 1000 rækker. Så et gæt er er, at der er noget i dataene der forårsager fejlen.

Jeg har prøvet at opdele reellife dataene i mindre grupper, hvor de kører lige igennem. Til det jeg skal bruge opdelingen til, er det glimrende. Så tak endnu en gang.
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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