Print side | Luk vindue

Kolonner til rækker

Udskrevet fra: Dansk Regneark Forum
Kategori: Hjælp til regneark.
Forum navn: Generelt
Forum beskrivelse: Hjælp til generel daglig brug af programmet Excel
Web-adresse: https://forum.excel-regneark.dk/forum_posts.asp?TID=1103
Udskrevet den: 06.Mar.2025 kl. 13:48


Emne: Kolonner til rækker
Besked fra: Tanja
Emne: Kolonner til rækker
Posteringsdato: 18.Feb.2013 kl. 11:52
Jeg har et regneark hvor jeg i kolonne A har nogle emner der optræder mere en én gang. I de andre kolonner har jeg nogle forskellige datoer mm. Jeg vil gerne have regnearket lavet om til at jeg kun har hvert emne optrædende én gang i kolonne A og alle andre variable i de efterfølgende kolonner, dvs. en streng pr. emne.
Jeg tror ikke transponer funktionen virker til dette, eller er det mig der måske ikke gør det rigtig:-)

Tanja



Svar:
Besked fra: excelent
Posteringsdato: 18.Feb.2013 kl. 17:52
Hej Tanja og velkommen til :-)

Hvor mange rækker og kolonner er der data i ?



-------------
Jeg anvender Excel 2016 DK. Hvad anvender DU ? HUSK TILBAGEMELDING !!!


Besked fra: Tanja
Posteringsdato: 18.Feb.2013 kl. 18:37
Tak :-)
Det drejer sig om ca. 3300 rækker og ca. 10 kolonner.
Jeg tænkte også om man måske kunne nummere alle indeks emner 1-3 hvis de optræder 3 gange, 1-2 hvis de optræder 2 gange osv. og derefter sortere på tallene, opdele arket i x antal ark og derefter vha. Indeks funktionen koble dem sammen bagefter? Men jeg ved heller ikke hvordan jeg nummererer dem på den måde (indeks funktionen har jeg styr på)
Håber du kan hjælpe, det ville være fantastisk.

Tanja


Besked fra: excelent
Posteringsdato: 18.Feb.2013 kl. 21:55
Følgende kode skulle løse opgaven - håber det er ok med VBA
 
Du skal først sikre dig at du har en overskrift i celle A1 (hvis ikke så indsæt en tom række øverst og skriv en overskrift i A1)
 
Koden indsætter en liste med unikke værdier fra M1 og ned
Herefter indsættes alle de tilhørende kolonne-værdier til højre - fra kolonne N til ca. kolonne DW - alt efter hvor mange værdier du nu har ud for hvert emne.
 
Så hvis du har data i det område som ikke må slettes, så sig lige til så finder vi en løsning.
 
Nu ved jeg ikke om du har erfaring med VBA, så her kommer en kort anvisning.:
 
Kopier følgende kode herfra
Tilbage i arket taster du ALT+F11
I menuen Insert vælger du Module
Indsæt koden i dette vindue
Tast ALT+Q så du returnerer til arket
 
Tast ALT+F8
Klik på Tranport og klik på Afspil
Herefter kan du slette alle kolonner til venstre for kolonne M
 
OBS. Prøv først med en kopi af filen
-------- kode ----------
Sub Transport()
Range("A1:A3400").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("M1"), Unique:=True
Set rng = Range("M2:M" & Cells(65536, "M").End(xlUp).Row)
For Each c In Range("A2:A3400")
If c = "" Then Exit For
rk = rng.Find(c, LookIn:=xlValues).Row
kol = Cells(rk, 255).End(xlToLeft).Column + 1
Range("B" & c.Row & ":K" & c.Row).Copy Cells(rk, kol)
Next
End Sub
-----------------------------


-------------
Jeg anvender Excel 2016 DK. Hvad anvender DU ? HUSK TILBAGEMELDING !!!


Besked fra: excelent
Posteringsdato: 18.Feb.2013 kl. 22:02
OBS koden stopper når den møder en tom celle i kolonne A
Så hvis du har tomme celler imellem dine emner i kol A så sig til


-------------
Jeg anvender Excel 2016 DK. Hvad anvender DU ? HUSK TILBAGEMELDING !!!


Besked fra: Tanja
Posteringsdato: 19.Feb.2013 kl. 10:57
Nu var jeg lige klar til at køre programmet, men jeg har en Mac med Windows 11, så når jeg trykker Alt+F11 så kommer jeg til indstillinger for lyd og ikke en menu med Insert. Kan du også hjælpe mig ud af dette? Jeg tror det kommer til at virke, det er lige præcis på den måde jeg havde forestillet mig det. 
På forhånd tusind tak.

P.S Jeg er ikke det store computer geni, så jeg sætter stor pris på din meget pædagogiske fremgangsmåde.

Tanja


Besked fra: Tanja
Posteringsdato: 19.Feb.2013 kl. 11:54
Jeg fandt ud af det alligevel og det virkede! Det er da helt fantastisk. Tusind, tusind tak for din hjælp.
Et lille bemærkning, alle kolonerne kom ikke med over, det har ikke den store betydning, de kolonner skulle jeg ikke bruge, men til en anden gang, ved du hvordan man klarer den?

Mange respektfulde hilsner Tanja


Besked fra: Tanja
Posteringsdato: 19.Feb.2013 kl. 11:57
Jeg lavede makroen lidt om, da jeg alligevel havde flere kolonner end til M. Så der hvor du havde skrevet M, skrev jeg T istedet. Kan det være derfor, at jeg ikke har rettet det alle steder?

Tanja


Besked fra: excelent
Posteringsdato: 19.Feb.2013 kl. 16:38
Jeg har rettet koden til så den tager værdier ud til og med kolonne S og de indsættes fra kolonne T
Men der er jo kun plads til 236 værdier hvis du har 256 kolonne i alt som i Excel 2003
Så det kommer an på om der er emner som går igen mere end 13 gange, så kniber det med pladsen

Sub Transport()

Range("A1:A3400").AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("T1"), Unique:=True
Set rng = Range("T2:T" & Cells(65536, "T").End(xlUp).Row)

For Each c In Range("A2:A3400")
If c = "" Then Exit For
rk = rng.Find(c, LookIn:=xlValues).Row
kol = Cells(rk, 255).End(xlToLeft).Column + 1
Range("B" & c.Row & ":S" & c.Row).Copy Cells(rk, kol)
Next

End Sub



-------------
Jeg anvender Excel 2016 DK. Hvad anvender DU ? HUSK TILBAGEMELDING !!!


Besked fra: Tanja
Posteringsdato: 20.Feb.2013 kl. 09:27
Hej igen
 
Tusind tak, det hjalp. Alle kolonner kom hvor de skulle.
Det var virkelig en kæmpe hjælp, du har sparet mig for mange timers sorterinsarbejde.Smile
 
Hilsen Tanja


Besked fra: excelent
Posteringsdato: 21.Feb.2013 kl. 06:24
Velbekom Smile

-------------
Jeg anvender Excel 2016 DK. Hvad anvender DU ? HUSK TILBAGEMELDING !!!



Print side | Luk vindue