Avatar billede Lars Mester
01. november 2016 - 11:37 Der er 6 kommentarer og
1 løsning

Opsplitning af data

Hej
Kan nogen være behjælpelige med evt. kode vba til opsplitning af data når data ser således ud
Udbud    Art    Vinder    Sum
1    Bleer    Ole;hans;jens    1000;1100;900
2    Mælk    Lise;jens;ole;peter    1200;1000;800;1200
3    Stole    Hans    1000

Og skal opsplittes og listes således:
Resultat           
Udbud    Art    Vinder    Sum
1    Bleer    Ole            1000
1    Bleer    Hans    1100
1    Bleer    Jens              900
2    Mælk    Lise            1200
2    Mælk    Jens            1000
2    Mælk    Ole              800
2    Mælk    Peter    1200
3    Stole    Hans    1000

Håber på hjælp til kode
Lars
Avatar billede Lars Mester
01. november 2016 - 13:56 #1
Så antal af linier afhænger af hvor mange semikolon ; der er i Vinder hvor det så skal kopieres det faste enheder Udbud og Art ned og Vinder og Sum splittes op på disse.... Er det muligt ?
Avatar billede smukkemn Forsker
01. november 2016 - 14:31 #2
Ja
Vælg Data - tekst i kolonner
Her kan du sætte mellemrum og tabulator mm
Avatar billede Lars Mester
01. november 2016 - 18:15 #3
Den funktion er jeg bekendt med - men løser ikke problemet med, at opliste værdierne under hinanden.
Lars
Avatar billede ebea Ekspert
01. november 2016 - 19:21 #4
Den opstilling du har lavet, er det "et tænkt eksempel", eller får du data ind fra en CSV fil, sådan som vist? Semikolon og mellemrums separeret
Avatar billede Lars Mester
01. november 2016 - 20:04 #5
Hej ebea
Det er data i Excel ark hvor noget data er separeret med semikolon og noget med faste enheder/data - står nøjagtigt som vist ovenfor - der kan dog også forekomme andre kolonner længere ude hvor data også er semikolon opdelt. Men antal af semikolon er ens i de felter hvor disse står.
Så de skal først adskilles - derefter skal der oprettes x antal nye linier (svarende til antal semikolon for det enkelte udbud) - så skal de adskilte data transponeres og de faste felter sættes - så det ser ud som resultatet ovenfor.
Kan det kodes ?
Avatar billede excelent Ekspert
02. november 2016 - 19:22 #6
Sub xSplit()

Sheets("Ark1").Select ' Gør kilde arket aktivt - ret til aktuel arknavn
Set sh2 = Sheets("Ark2") ' Destinations ark ret til aktuel arknavn

For j = 2 To 4 ' Gennemløber fra række 2 til række 4 - ret til aktuel

kolA = Range("A" & j) ' Udbud
kolB = Range("B" & j) ' Art
kolC = Split(Range("C" & j), ";") ' Vinder
kolD = Split(Range("D" & j), ";") ' Sum

For t = 0 To UBound(kolC) ' UBound(kolC)=antal værdier adskilt af semikolon

rk = sh2.Cells(1000, "A").End(xlUp).Row + 1 ' Næste tomme række i destinations arket

sh2.Cells(rk, 1) = kolA
sh2.Cells(rk, 2) = kolB
sh2.Cells(rk, 3) = kolC(t)
sh2.Cells(rk, 4) = kolD(t)
Next
Next

End Sub
Avatar billede Lars Mester
03. november 2016 - 11:34 #7
Hej excelent
Det virker bare
Mange tak for hjælpen
Lars
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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