Редизайн на маса

Съдържание

Не е тайна, че повечето потребители на Excel, когато създават таблици на листове, мислят преди всичко за собствения си комфорт и удобство. Така се раждат красиви, цветни и тромави таблици със сложни „заглавки“, които в същото време изобщо не могат да бъдат филтрирани или сортирани и е по-добре изобщо да не мислите за автоматичен отчет с обобщена таблица.

Рано или късно потребителят на такава маса стига до заключението, че „може да не е толкова красиво, но може да работи“ и започва да опрости дизайна на масата си, привеждайки го в съответствие с класическите препоръки:

  • проста заглавка от един ред, където всяка колона ще има свое собствено уникално име (име на поле)
  • един ред – една завършена операция (сделка, продажба, публикуване, проект и др.)
  • няма обединени клетки
  • без прекъсвания под формата на празни редове и колони

Но ако направите едноредова заглавка от многостепенна или разделите една колона на няколко, това е доста просто, тогава реконструкцията на таблицата може да отнеме много време (особено при големи размери). Това означава следната ситуация:

Of     Редизайн на маса   do     Редизайн на маса  

По отношение на базите данни, правилната таблица обикновено се нарича плоска (плоска) - според такива таблици е най-добре да се изграждат отчети от обобщени таблици (пивот таблици) и да се извършват анализи.

Можете да конвертирате двуизмерна таблица в плоска с помощта на прост макрос. Отворете редактора на Visual Basic чрез раздела Разработчик – Visual Basic (Програмист — редактор на Visual Basic) или клавишна комбинация Друг+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. Клетки(i, j) = inpdata.Cells(r, j) Следващ j За k = 1 До hr ns.Cells(i, j + k - 1) = inpdata.Cells(k, c) Следващ k ns.Cells( i, j + k - 1) = inpdata.Cells(r, c) i = i + 1 Next c Следващ r End Sub  

След това можете да затворите VBA редактора и да се върнете към Excel. Сега можем да изберем оригиналната таблица (изцяло, със заглавка и първата колона с месеци) и да изпълним нашия макрос през Разработчик – макроси (Програмист — Макроси) или комбинация от натискане Друг+F8.

Макросът ще вмъкне нов лист в книгата и ще създаде нова, реконструирана версия на избраната таблица върху него. Можете да работите с такава таблица „напълно“, като използвате целия арсенал от инструменти на Excel за обработка и анализ на големи списъци.

  • Какво представляват макросите, къде да вмъкнете макро код във VBA, как да ги използвате
  • Създаване на отчети с обобщени таблици
  • Инструмент за редизайн на XNUMXD таблици към плоски от добавката PLEX

 

Оставете коментар