• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Opgelost Kolommen in matrix omzetten naar rijen

Dit topic is als opgelost gemarkeerd

Fenadna

Gebruiker
Lid geworden
23 jun 2008
Berichten
48
Hoi,

Ik heb een matrix, waarvan ik de kolommen wil omzetten naar de rijen, waarbij het nummer behouden moet worden. Dus van elk nummer krijg je nu ipv 1 rij, 4 rijen. Ik kan het niet zo goed uitleggen, maar ik heb een bestand toegevoegd met IST de uitgangspositie en Soll zoals ik het wil hebben.

Kan iemand mij helpen?
 

Bijlagen

Met Power Query een fluitje van een cent (draaitabel opheffen).
 

Bijlagen

Ok, een toelichting:
1. Selecteer de tabel (A2:F8)
2. In menu gegevens druk op knop "van tabel/bereik", en daarna op Ok. Je komt nu in de Power Query omgeving.
3. Selecteer kolom totaal, rechtermuisknop op kolomkop > klik op verwijderen.
4. Selecteer kolom prestatiecode, rechtermuisknop op kolomkomkop > klik op "draaitabel voor andere kolommen opheffen"
5. Selecteer kolom waarde waarde > klik op afronden > afronden in menu Transformeren, stel in op 2 decimalen;
5. Eventueel nog de kolomtitels wijzigen in "niveau" en "bedrag"
6. Daarna bestand > sluiten en laden. Je komt nu weer in de Excel werkblad omgeving.

Hierna heb je de getransformeerde tabel.
 
Laatst bewerkt:
Kan eventueel ook met een macrootje, al heb ik die niet getest op een Mac:
 

Bijlagen

Office 365:

Code:
=LET(t;C3:F8;HSTACK(TOCOL(IF(t;A3:A8));TOCOL(IF(t;C2:F2));TOCOL(t)))
 
En een array versie.
Code:
Sub MatrixConversie_wb()
    sn = Range("A2", Range("A" & Rows.Count).End(xlUp)).Resize(, 6)
    ReDim sq(1 To (UBound(sn) - 1) * 4, 1 To 3)
    For i = 2 To UBound(sn)
        For j = 3 To 6
            x = x + 1
            sq(x, 1) = CStr(sn(i, 1)): sq(x, 2) = sn(1, j)
            sq(x, 3) = Round(Application.Index(sn, i, j), 2)
            Next
    Next
    With Cells(2, 10)
        .Resize(, 3) = Array("Prestatiecode", "Niveau", "Bedrag")
        .Offset(1).Resize(UBound(sq), 3) = sq
    End With
End Sub
 
#post 3: Het is geen draaitabel.
En hier heb je je draaitabel waar je om vroeg.
Een beetje van @AlexCEL en mij.
 

Bijlagen

Mooi, en wat is het geworden?
Dit n.a.v. op een Mac.
 
Terug
Bovenaan Onderaan