Just nu i M3-nätverket
Jump to content

Excel, timlakan till en kolumn


Guest RaderaDettaKonto

Recommended Posts

Guest Oputres

Hej!

 

(Hoppas denna fråga hör hemma i detta forum)

 

Jag har timlakan i Excel som jag behöver få till en enda lång rad.

 

Datat ser för t.ex. januar ut så här (T = Timme, D = Dag):

 

XXX T01 T02 T03 ... T24

D01 142 137 149 ... 101

D02 107 123 135 ... 103

...

D31 136 138 143 ... 109

 

Jag behöver få ut detta block i en rad enligt nedan:

D01 T01: 142

D01 T02: 137

D01 T03: 149

...

D01 T24: 101

D02 T01: 107

D02 T02: 123

...osv

 

Alltså, första radens 24 timvärden följt av andra radens 24 timvärden följt av tredje radens 24 timvärden osv.

 

Men huuuuur gör jag? Jag försöker leka med Transponera men lyckas bara få en rad i taget och det blir lite jobbigt att upprepa detta steg för årets alla timmar.

 

MYCKET tacksam för svar, helst om det finns någon enkel TRANSPONERA eller INDEX-formel som kan lösa en hel månad åt gången så man bara behöver upprepa steget en gång per månad alternativt om man måste spela in ett makro men då är jag tacksam för svar till en riktig nybörjare på det området.

 

Mvh Oputres

 

Link to comment
Share on other sites

Här är ett hemmasnickrat makro för att göra om en markerad tabell till en lista.

- Öppna VBA-editorn (Alt+F11).

- Om det inte finns någon modul, infoga en.

- Klipp ut koden nedan och klistra in i en modul.

- Växla tillbaka till arket, markera en tabell och kör makrot.

 

OBS! Makrot skriver ut den omformade tabellen under det markerade området, utan hänsyn till om det redan står något där.

 

mvh

/Johan

 

Sub TabellTillLista()
' Omformar en markerad tabell med rad- och kolumnrubriker till en lista
' som skrivs ut nedanför tabellen. Varje rad i listan innehåller ett
' värde med tillhörande rad- och kolumnrubrik.

Dim Tabell() As Variant
Dim r As Integer, k As Integer
Dim rader As Integer, kolumner As Integer
Dim Lista() As Variant
Dim i As Integer

If Not Selection Is Nothing Then

   'Läs in tabell
   Tabell = Selection
   rader = Selection.Rows.Count
   kolumner = Selection.Columns.Count

   'Skapa lista
   ReDim Lista((rader - 1) * (kolumner - 1), 3)
   i = 0
   For r = 2 To rader
       For k = 2 To kolumner
           Lista(i, 0) = Tabell(r, 1)
           Lista(i, 1) = Tabell(1, k)
           Lista(i, 2) = Tabell(r, k)
           i = i + 1
       Next k
   Next r

   'Skriv lista
   Selection.Offset(rader + 1, 0).Resize(i, 3) = Lista

End If

End Sub

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...