Рэдызайнер табліцы

змест

Не сакрэт, што большасць карыстальнікаў 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

 

Пакінуць каментар