Nie jest tajemnicą, że większość użytkowników Excela tworząc tabele na arkuszach myśli przede wszystkim o własnym komforcie i wygodzie. Tak rodzą się piękne, kolorowe i nieporęczne tabele ze skomplikowanymi „nagłówkami”, których jednocześnie nie da się w ogóle filtrować ani sortować, a o automatycznym raporcie z tabelą przestawną lepiej w ogóle nie myśleć.
Wcześniej czy później użytkownik takiego stołu dochodzi do wniosku, że „może nie jest taki piękny, ale może działać” i zaczyna upraszczać projekt swojego stołu, dostosowując go do klasycznych zaleceń:
- prosty jednowierszowy nagłówek, w którym każda kolumna będzie miała swoją unikalną nazwę (nazwę pola)
- jedna linia – jedna zakończona operacja (transakcja, sprzedaż, księgowanie, projekt itp.)
- brak scalonych komórek
- bez przerw w postaci pustych wierszy i kolumn
Ale jeśli zrobisz jednowierszowy nagłówek z wielopoziomowego lub podzielisz jedną kolumnę na kilka, jest to dość proste, wtedy rekonstrukcja tabeli może zająć dużo czasu (szczególnie przy dużych rozmiarach). Oznacza to następującą sytuację:
Of | do |
W kwestii baz danych właściwa tabela nazywana jest zwykle płaską (płaską) – to właśnie według takich tabel najlepiej budować raporty tabel przestawnych (tabele przestawne) i prowadzić analitykę.
Możesz przekonwertować dwuwymiarową tabelę na tabelę płaską za pomocą prostego makra. Otwórz Edytor Visual Basic za pomocą karty Deweloper – Visual Basic (Deweloper — Edytor Visual Basic) lub skrót klawiaturowy inny+F11. Wstaw nowy moduł (Wstaw – moduł) i skopiuj tam tekst tego makra:
Sub Redesigner() Dim i As Long Dim hc As Integer, hr As Integer Dim ns As Worksheet hr = InputBox("Sколько строк с подписями сверху?") hc = InputBox("Сколько столбцов Application слеими?") False i = 1 Ustaw inpdata = Zbiór zaznaczeń ns = Arkusze.Dodaj Dla r = (hr + 1) To inpdata.Rows.Count For c = (hc + 1) To inpdata.Columns.Count For j = 1 To hc ns. Cells(i, j) = inpdata.Cells(r, j) Next j For k = 1 To hr ns.Cells(i, j + k - 1) = inpdata.Cells(k, c) Next k ns.Cells( i, j + k - 1) = inpdata.Cells(r, c) i = i + 1 Next c Next r End Sub
Następnie możesz zamknąć edytor VBA i wrócić do programu Excel. Teraz możemy wybrać oryginalną tabelę (w całości, z nagłówkiem i pierwszą kolumną z miesiącami) i uruchomić nasze makro Deweloper – Makra (Deweloper — Makra) lub naciskając kombinację inny+F8.
Makro wstawi do księgi nowy arkusz i utworzy na nim nową, zrekonstruowaną wersję wybranej tabeli. Z taką tabelą można pracować „w całości”, wykorzystując cały arsenał narzędzi Excela do przetwarzania i analizowania dużych list.
- Czym są makra, gdzie wstawić kod makr w VBA, jak ich używać
- Tworzenie raportów za pomocą tabel przestawnych
- Narzędzie do przeprojektowania tabel XNUMXD na płaskie z dodatku PLEX