Не сакрэт, што большасць карыстальнікаў Excel пры стварэнні табліц на аркушах думаюць перш за ўсё аб уласным камфорце і выгодзе. Так нараджаюцца прыгожыя, маляўнічыя і грувасткія табліцы са складанымі «шапкамі», якія, у той жа час, увогуле не паддаюцца фільтрацыі і сартаванні, а пра аўтаматычны справаздачы са зводнай табліцай лепш наогул не думаць.
Рана ці позна карыстальнік такога стала прыходзіць да высновы, што «можа і не так прыгожа, але можа працаваць», і пачынае спрашчаць дызайн свайго стала, прыводзячы яго ў адпаведнасць з класічнымі рэкамендацыямі:
- просты аднарадковы загаловак, дзе кожны слупок будзе мець сваё ўласнае унікальнае імя (імя поля)
- адзін радок – адна завершаная аперацыя (здзелка, продаж, размяшчэнне, праект і інш.)
- няма аб'яднаных вочак
- без разрываў у выглядзе пустых радкоў і слупкоў
Але калі зрабіць аднарадковы загаловак з шматузроўневага або разбіць адзін слупок на некалькі, гэта даволі проста, то перабудова табліцы можа заняць шмат часу (асабліва пры вялікіх памерах). Маецца на ўвазе наступная сітуацыя:
Of | do |
З пункту гледжання баз дадзеных правую табліцу звычайна называюць плоскай (плоскай) - менавіта па такіх табліцах лепш за ўсё будаваць справаздачы зводных табліц (зводных табліц) і праводзіць аналітыку.
Вы можаце пераўтварыць двухмерную табліцу ў плоскую з дапамогай простага макраса. Адкрыйце рэдактар Visual Basic праз укладку Распрацоўшчык - Visual Basic (Распрацоўшчык — рэдактар Visual Basic) або спалучэнне клавіш Alt+F11. Устаўце новы модуль (Устаўка – модуль) і скапіруйце туды тэкст гэтага макраса:
Sub Redesigner() Dim i As Long Dim hc As Integer, hr As Integer Dim ns As Worksheet hr = InputBox("Колькі радкоў з подпісамі зверху?") hc = InputBox("Колькі столбцов з подпісамі слева?") Application.ScreenUpdating = False i = 1 Set inpdata = Selection Set ns = Worksheets.Add For 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 Наступны c Наступны r Канец Sub
Затым вы можаце зачыніць рэдактар VBA і вярнуцца ў Excel. Цяпер мы можам выбраць зыходную табліцу (цалкам, з загалоўкам і першым слупком з месяцамі) і запусціць наш макрас Распрацоўшчык - Макрасы (Распрацоўшчык — Макрасы) або спалучэнне націску Alt+F8.
Макрас ўставіць новы аркуш у кнігу і створыць на ім новую, рэканструяваную версію абранай табліцы. З такой табліцай можна працаваць «па поўнай», выкарыстоўваючы ўвесь арсенал інструментаў Excel для апрацоўкі і аналізу вялікіх спісаў.
- Што такое макрасы, куды ўстаўляць код макрасаў у VBA, як імі карыстацца
- Стварэнне справаздач з дапамогай зводных табліц
- Інструмент для пераробкі XNUMXD табліц у плоскія з надбудовы PLEX