Non é ningún segredo que a maioría dos usuarios de Excel, ao crear táboas en follas, pensan en primeiro lugar na súa comodidade e comodidade. Así nacen táboas fermosas, coloridas e engorrosas con "cabeceiras" complexas que, ao mesmo tempo, non se poden filtrar nin ordenar en absoluto, e é mellor non pensar nun informe automático cunha táboa dinámica.
Tarde ou cedo, o usuario desta táboa chega á conclusión de que "non pode ser tan bonito, pero pode funcionar" e comeza a simplificar o deseño da súa mesa, axustándoa ás recomendacións clásicas:
- un encabezado sinxelo dunha liña, onde cada columna terá o seu propio nome único (nome de campo)
- unha liña: unha operación completada (trato, venda, publicación, proxecto, etc.)
- sen celas combinadas
- sen quebras en forma de filas e columnas baleiras
Pero se fai un encabezado dunha liña a partir dun de varios niveis ou divide unha columna en varias, é bastante sinxelo, entón a reconstrución da táboa pode levar moito tempo (especialmente en tamaños grandes). Significa a seguinte situación:
Of | do |
En termos de bases de datos, a táboa correcta adoita chamarse plana (plana) - é segundo tales táboas que o mellor é crear informes de táboas dinámicas (táboas dinámicas) e realizar análises.
Podes converter unha táboa bidimensional nunha táboa plana usando unha macro sinxela. Abra o Editor de Visual Basic a través da pestana Desenvolvedor - Visual Basic (Desenvolvedor — Editor de Visual Basic) ou atallo de teclado alt+F11. Insira un novo módulo (Inserir – Módulo) e copie alí o texto desta macro:
Sub Redesigner() Dim i As Long Dim hc As Integer, hr As Integer Dim ns As Worksheet hr = InputBox("Сколько строк с подписями сверху?") hc = InputBox("Сколько строк с подписями сверху?") hc = InputBox("Сколько строк с подписями сверху?") hc = InputBox("Сколько строк сколько строк Falso i = 1 Conxunto de inpdata = Conxunto de selección ns = Follas de traballo. Engadir para r = (hr + 1) Para inpdata.Filas.Contador Para c = (hc + 1) Para inpdata.Columnas.Contador Para j = 1 Para hc ns. Cells(i, j) = inpdata.Cells(r, j) Seguinte j Para k = 1 To hr ns.Cells(i, j + k - 1) = inpdata.Cells(k, c) Seguinte k ns.Cells( i, j + k - 1) = inpdata.Cell(r, c) i = i + 1 Seguinte c Seguinte r End Sub
Despois podes pechar o editor de VBA e volver a Excel. Agora podemos seleccionar a táboa orixinal (completamente, cunha cabeceira e a primeira columna con meses) e executar a nosa macro Desenvolvedor - Macros (Desenvolvedor - Macros) ou combinación presionando alt+F8.
A macro inserirá unha nova folla no libro e creará nela unha nova versión reconstruída da táboa seleccionada. Podes traballar con tal táboa "completamente", usando todo o arsenal de ferramentas de Excel para procesar e analizar listas grandes.
- Que son as macros, onde inserir o código de macros en VBA, como usalas
- Creación de informes con táboas dinámicas
- Ferramenta para redeseñar táboas XNUMXD a planas do complemento PLEX