Przekształcenie tabeli w liste - Excel

Odpowiedz Nowy wątek
2019-07-11 18:22
0

Cześć, czy za pomocą formułek, można w ten sposób zmienić tabelę. Jak do tego podejśc żeby w nowej tabeli(tak jak w tab2) automatycznie przeniesc odpowiedni wiersz i nagłówek kolumny wraz ze wspólną wartością(pomijając zera) z tab1.

tab1
------AAAA | BBBB | CCCC | DDDD|
Z1 |----0----|----1----|----0----|----2----|
Z2 |----1----|----3----|----0----|----0----|
Z3 |----1----|----1----|----8----|----0----|

tab2
Z2 | AAAA | 1
Z3 | AAAA | 1
Z1 | BBBB | 1
Z2 | BBBB | 3
Z3 | BBBB | 1
Z3 | CCCC | 8
Z1 | DDDD | 2

edytowany 1x, ostatnio: KaAeMIeL, 2019-07-11 18:22

Pozostało 580 znaków

2019-07-11 20:04
0

Wszystko się da, tylko tutaj moim zdaniem prędzej skryptem niż formułkami

edytowany 1x, ostatnio: pavarotti, 2019-07-11 20:05

Pozostało 580 znaków

2019-07-11 21:11
0
pavarotti napisał(a):

Wszystko się da, tylko tutaj moim zdaniem prędzej skryptem niż formułkami

Ok, dzięki. Podejrzewałem że tak będzie, w takim razie zabieram się za VBA.

Pozostało 580 znaków

2019-07-12 00:41
0

Przecież to tabela przestawna. Parę klików i masz...

Pozostało 580 znaków

2019-07-15 21:58

Tabela przestawna ok ale dla paru kolumn przy większej ilości możesz użyć makro
Formułkami ? nie wiem o co chodzi za pomocą jakiejś formuły tak ?

masz makro które oprócz tego że zmienia format to jeszcze w przypadku dużych tabel nie weźmie pod uwagę pustych wierszy żeby zmieściły się :D do 1 miliona


sub zmien()

Application.ScreenUpdating = False 

s = Cells(Rows.Count, 1).End(xlUp).Row 
z = Cells(Columns.Count, 1).End(xlToRight).Column 

 Sheets("WYNIK").Select 
    Rows("2:2").Select 
    Range(Selection, Selection.End(xlDown)).Select 
    Selection.ClearContents 
    Cells(1, 1).Select 

Sheets("Dane").Select 

n = 2 

For r = 2 To s 

    For d = 2 To z 
    Sheets("Dane").Select 

            wiersz = Cells(r, 1).Value 
            qty = Cells(r, d).Value 
            kolumna = Cells(1, d).Value 

            If qty > 0 Then 

                Sheets("WYNIK").Select 
                Cells(n, 1).Value = kolumna 
                Cells(n, 2).Value = wiersz 
                Cells(n, 3).Value = qty 
                n = n + 1 
            Else 

            End If 

    Next d 

Next r 

End Sub 
edytowany 4x, ostatnio: winek, 2019-07-15 22:01

Pozostało 580 znaków

2019-07-17 21:21
0

Dzięki winek, właśnie na czymś zbliżonym mi zależało. Zmodyfikowałem delikatnie i działa dokładnie tak jak chciałem.

Pozostało 580 znaków

2019-07-17 21:35
0

@KaAeMIeL:
Super ciesze się jeżeli pomogłem

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0