Avatar billede dsp82 Nybegynder
16. oktober 2008 - 11:30 Der er 5 kommentarer og
2 løsninger

Konvertere matrix7array til rækker.

Hej,

har et problem med at konvertere min matrix om til rækker, så min database kan tolke tallene.

eks:

Navn,initialer,hold,januar,februar,marts
Peter,Pe,A,10,20,30
Peter,Pe,B,5,10,17
Mads,Ma,A,7,16,10
Mads,Ma,B,7,5,3

Dette vil jeg gerne have konverteret til følgende:

Navn,initialer,hold,måned,værdi
Peter,Pe,A,januar,10
Peter,Pe,A,februar,20
Peter,Pe,A,Marts,30
Peter,Pe,B,januar,5
Peter,Pe,B,februar,10
Peter,Pe,B,Marts,17
Mads,ma,A,januar,7
Mads,ma,A,februar,16
Mads,ma,A,Marts,10
Mads,ma,B,januar,7
Mads,ma,B,februar,5
Mads,ma,B,Marts,3

er det muligt med en simpel formel?
Avatar billede excelent Ekspert
18. oktober 2008 - 15:38 #1
Hvis du indsætter overskrifterne i H1,I1,J1,K1,L1
Navn    Initialer    Hold    Måned    Værdi

og disse formler i række 2 og kopiere ned med fyldhåndtag

H2=FORSKYDNING($A$2;RÆKKE(5:5)/3-1,5;0)
I2=FORSKYDNING($B$2;RÆKKE(5:5)/3-1,5;0)
J2=FORSKYDNING($C$2;RÆKKE(5:5)/3-1,5;0)
K2=HVIS(K1="Måned";$D$1;HVIS(K1=$D$1;$E$1;HVIS(K1=$E$1;$F$1;HVIS(K1=$F$1;$D$1))))
L2=INDIREKTE(TEGN(ABS((RUND.OP(RÆKKE(1:1)/3;0)-RÆKKE(3:3)/3)*3)+68)&RUND.OP(RÆKKE(1:1)/3;0)+1)
Avatar billede sism Nybegynder
21. oktober 2008 - 10:46 #2
Hej excelent. Du har hjulpet mig før. Kan du hjælpe mig igen? Jeg har oprettet et spørgsmål angående problemer med makro og navneskift på excelfil. Undskyld denne måed jeg henvender mig på.
Avatar billede dsp82 Nybegynder
29. oktober 2008 - 10:22 #3
Der ser fint ud, men der kommer flere måneder på hen ad vejen, så er lidt begrænset der. Er der en anden måde?
Avatar billede excelent Ekspert
29. oktober 2008 - 20:04 #4
ja så skal der andre boller på suppen :-)

Sub Flyt()
Dim rng As Range
Set sh1 = Sheets("Ark1")
Set sh2 = Sheets("Ark2")
rk1 = sh1.Cells(8000, "A").End(xlUp).Row
mdr = Application.CountA(sh1.Range("D1:IV1"))
sh2.Range("A1") = "Navn": sh2.Range("B1") = "Initialer"
sh2.Range("C1") = "Hold": sh2.Range("D1") = "Måned": sh2.Range("E1") = "Værdi"
sh2.Range("A2:E8000") = "" ' sletter data i Ark2 inden nye skrives

For t = 2 To rk1
For m = 1 To mdr
rk2 = sh2.Cells(8000, "A").End(xlUp).Row + 1
sh1.Cells(t, 1).Copy sh2.Cells(rk2, 1)
sh1.Cells(t, 2).Copy sh2.Cells(rk2, 2)
sh1.Cells(t, 3).Copy sh2.Cells(rk2, 3)
Next
Next

For t = 2 To rk1

sh1.Range(Range(Cells(1, 4), Cells(1, mdr + 3)).Address).Copy
Set rng = sh2.Range("D8000").End(xlUp).Offset(1, 0)
rng.PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
sh1.Range(Range(Cells(t, 4), Cells(t, mdr + 3)).Address).Copy
Set rng = sh2.Range("E8000").End(xlUp).Offset(1, 0)
rng.PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
Application.CutCopyMode = False

Next
ActiveCell.Select
End Sub
Avatar billede excelent Ekspert
02. november 2008 - 14:05 #5
hvordan går det ?
Avatar billede excelent Ekspert
09. november 2008 - 18:18 #6
?
Avatar billede dsp82 Nybegynder
18. november 2008 - 10:14 #7
Hej, har fundet et problem. Hvis et af månedsværdierne er tomme, så går det helt galt.

Er der en måde at rette op det?
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