Às vezes, é necessário converter uma tabela cruzada (pivô) em uma tabela plana. Este procedimento é denominado " correção de dados "
O programa LibreOffice Calc não possui uma funcionalidade padrão para conversão de tabelas dinâmicas em " plano ", mas você mesmo pode escrever o procedimento correspondente. Vamos ver como fazer isso.
Vejamos a imagem abaixo para entender mais claramente a essência do problema. À esquerda temos uma tabela em forma de matriz (tabela dinâmica), e à direita - uma tabela regular com colunas (tabela plana):
Ao expandir uma tabela, você descompacta o par atributo-valor que é a interseção das colunas na tabela matriz e os reorienta nas colunas niveladas na tabela simples:
Abra o menu Tools - Macros - Edit Macros..., selecione Module1 e copie o seguinte texto no módulo:
Sub UnPivotTable ' moonexcel.com.ua Dim oBook As Object Dim oActiveSheet As Object Dim oSelRange As Object Dim oNewSheet As Object Dim i As Long Dim iTopLabelRowCount As Integer Dim iSideLabelColCount As Integer oBook = ThisComponent oActiveSheet = oBook.CurrentController.ActiveSheet oSelRange = oBook.CurrentSelection ' Adicionar uma nova planilha oBook.Sheets.insertNewByName("UnPivoted Table",0) oNewSheet = oBook.Sheets(0) ' Determine o tamanho dos cabeçalhos iTopLabelRowCount = InputBox(" Quantas linhas no cabeçalho superior? ") iSideLabelColCount = InputBox(" Quantas colunas no cabeçalho lateral? ") i = 0 For r = (iTopLabelRowCount + 1) To oSelRange.Rows.Count For c = (iSideLabelColCount + 1) To oSelRange.Columns.Count For j = 1 To iSideLabelColCount oNewSheet.getCellByPosition(j-1, i).Formula = oSelRange.getCellByPosition(j-1, r-1).Formula Next j For k = 1 To iTopLabelRowCount oNewSheet.getCellByPosition(j + k - 2, i).Formula = oSelRange.getCellByPosition(c-1, k-1).Formula Next k oNewSheet.getCellByPosition(j + k - 2, i).Formula = oSelRange.getCellByPosition(c-1, r-1).Formula i = i + 1 Next c Next r End Sub
Em seguida, feche Macro Editor e retorne à sua planilha em LibreOffice Calc. Selecione a tabela inteira com os cabeçalhos superior e esquerdo e execute nossa nova macro através do menu Tools - Macros - Run Macro...
A macro irá inserir uma nova planilha nomeada em sua pasta de trabalho
Você também pode usar o utilitário "Tabela dinâmica (Unpivot)" instalando a extensão YLC_Utilities.oxt .
Depois disso, este utilitário estará disponível em todos os arquivos que serão abertos em LibreOffice Calc.