18 de maio de 2014

Dados normalizados (reshape data)

O que é

Reshape (ou unpivot ou normalizar) de uma tabela é um processo necessário em alguns casos pra conseguir visualizar os dados usando algum software como Tableau, Raw, R, ou mesmo pra utilizá-los no Excel com mais funcionalidades (como Filtro, Subtotais, …).

Uma tabela normalizada (reshaped) é uma tabela em um formato que o software vai entender. Visualmente (como tabela) pode ficar mais confusa ou redundante. Mas o propósito básico dela é conseguir fazer cálculos ou utilizar os dados para visualização. Então, sabendo quando utilizar, pode ser muito útil ou essencial.

Como devem ficar os dados

Essa é a tabela antes do reshape.
Ela é lida célula por célula, como no batalha naval. ("Cidade 3" tem o "Problema B" = 3. Bomba!)
Nas células no meio do caminho, estão o número de ocorrências.
É uma boa tabela para compilar dados e visualizar como tabela no Excel mesmo.
É comum também cada coluna ser um período (2006, 2007, 2008...)

Tabela antes do reshape
Em alguns casos, a tabela precisa do reshape para ficar neste formato.
Ela deve ser lida linha por linha.
Agora, cada coluna tem apenas uma "característica" (Problema e Valor) da "coisa" (Cidade) que está na primeira coluna. 
Esse formato de tabela é utilizado pelos softwares de banco de dados (tabela normalizada). Uma das regras da tabela normalizada é que cada linha pode ser lida individualmente e se refere apenas a uma coisa. Cada linha é um registro, uma ocorrência. Na linha 6, o "Problema B" e o valor "3" dizem respeito à "Cidade 3". 
Problema e Valor são características da Cidade. O conjunto dos 3 na mesma linha é um registro.

Tabela depois do reshape





Como fazer



Plugins

(Tools for reshaping / unpivot / normalize data)
Neste caso foi usado um plugin para Excel para fazer a transformação:

Reshaping Data - Tableau Add-in. (Funciona só em Windows)
http://kb.tableausoftware.com/articles/knowledgebase/addin-reshaping-data-excel

O Tableau também tem um tutorial de como preparar os dados
http://kb.tableausoftware.com/articles/knowledgebase/preparing-excel-files-analysis

Alternativa para Excel no Mac:

Add-in "Table 2 DB":
https://drive.google.com/file/d/0Bya641p0XuQjQ3czOFUxeE1TUEk/view?usp=sharing
(Excel for Mac Reshape Add-in)

Veja onde instalar:
Table 2 DB installation folder (Excel for Mac Add-in)

Outra forma possível é o Data Wrangler (http://vis.stanford.edu/wrangler/).

Outro Exemplo

Um exemplo de reshape com dados reais:

Ordenar listas ou tabelas no Excel em ordem alfabética

👉 Mais vídeos: Dados Finos no Youtube


Ordenar valores em ordem crescente/decrescente com o Filtro.

  1. Certifique-se de ter um cabeçalho
  2. Selecione todas as células (se selecionar só algumas, a ordem vai bagunçar depois)
  3. Vá até a aba Dados (Data) > Filtro (Filter). Atalho no Mac: Cmd + Shift + F
  4. Use os botões com seta que surgiram no cabeçalho das colunas para ordenar (sort) as linhas em ordem crescente/decrescente (ordem alfabética em caso de texto)



Filtro automático

Usando o filtro sem selecionar todas as células da tabela

O filtro é criado mesmo que você só tenha uma célula selecionada.
Para funcionar corretamente dessa forma:
a tabela não deve ter linhas ou colunas vazias.
Se tiver,  o filtro vai pegar só uma parte dos seus dados, e vai parar assim que encontrar uma linha ou coluna vazia.
(Por tabela quero dizer apenas as células que contém os dados em questão dentro de uma planilha, não todas as células até o fim da planilha)


No Google Planilhas

O caminho no editor de tabelas do Google é até mais simples. Dê uma olhada:
Ordenar tabelas no Google Docs


--
Sorting ascending/descending values with Filter in Excel.

--
Veja também: mais dicas de Excel

Outro exemplo: ordenando uma tabela no Excel



Excel: contas simples



Divisão, arredondamento e soma.

Excel: arredondando números grandes



Como arredondar números com Excel

Veja como abreviar milhões e bilhões no Excel, arredondando e simplificando números que são inteiros (mas muito grandes). Por exemplo transformando:
 
2.653.459.989 em 2,65 bilhões ou
    1.300.000.000 em 1,3 bilhão* 

    (*bilhão no singular, pois é menor que dois, apesar das casas decimais confundirem)
    1. Crie uma coluna extra, ao lado daquela que tem seus números grandes
    2. Escreva o cabeçalho novo ("Nome do indicador" em milhões/bilhões/milhares…)
    3. Na célula da primeira linha da coluna nova:
      • Digite o sinal de igual (=) para iniciar uma fórmula
      • Com o mouse clique na célula ao lado que tem o número a ser abreviado
      • Digite o sinal de barra (/) para fazer a divisão
      • Digite o número pelo qual você quer dividir: 1000000 para abreviar para milhões (um seguido de seis zeros), 1000000000 para abreviar para bilhões (um seguido de nove zeros), e assim por diante.
      • Digite enter para finalizar
    4. Arraste a fórmula até onde for preciso (pelo quadradinho azul no canto inferior direito da célula). Se der dois cliques no quadradinho a fórmula vai até o final da sua coluna automaticamente.
    5. Ajuste o número de casas decimais. Diminuir pra uma, duas ou nenhuma, dependendo da necessidade. (botão com seta azul e zeros na aba Home/Página Inicial ou no menu Format > Cells… > Number > Decimal Places).

    [etapa opcional]

    Elimine a fórmula para deixar só os valores

    Essa etapa é opcional, mas importante quando você quiser eliminar a coluna original ou mudar a posição das células na planilha sem perder os dados recém calculados. É mais segura para quando você vai ficar fazendo muitas modificações na tabela:
    •     Selecione os valores
    •     Copie (Ctrl + C)
    •     Colar Especial (Paste special). Opção disponível clicando com o botão direito ou no menu Edit.
    •     Selecione a opção "Valores" (Values)
    •     Agora os valores que você colou não tem mais a fórmula. (Pode mover as células sem problemas ou apagar as originais)

    --
    How to round numbers with Excel.
    Rounding/simplifying big numbers (millions, billions, ...) with Excel.

    Veja também 

    Entendendo números grandes

    Quanto é um trilhão?

    Um trilhão tem dozes zeros, é a forma escrita do número 1.000.000.000.000. São mil bilhões, ou um milhão de vezes um milhão. Em Portugal, um trilião (escrito com i e não h) é outro número, com dezoito zeros.

    Quanto é um bilhão?

    Um bilhão tem nove zeros, é a forma escrita do número 1.000.000.000. São mil vezes um milhão. Pode haver confusão com o português de Portugal, em que 1 bilião (grafado diferente) tem 12 zeros, número que para os brasileiros seria um trilhão.

    Quanto é um milhão?

    Um milhão tem seis zeros, é a forma escrita do número 1.000.000. São mil vezes mil.

    Quanto é cem mil? 

    Cem mil tem cinco zeros, é a forma escrita do número 100.000.

    Bilhão ou bilião?

    Veja a diferença na nomenclatura dos números grandes entre Brasil e Portugal:

    NúmeroQuantos zerosPortuguês BrasileiroPortuguês EuropeuPotência de 10
    1.000três zerosmilmil3
    1.000.000seis zerosmilhãomilhão6
    1.000.000.000nove zerosbilhãomil milhões9
    1.000.000.000.000doze zerostrilhãobilião12
    1.000.000.000.000.000quinze zerosquatrilhãomil biliões15
    1.000.000.000.000.000.000dezoito zerosquintilhãotrilião18

    Tabela adaptada daqui.

    30 de abril de 2014

    Excel: formatando tabelas complexas

     

     Passo a passo. Formatação de uma tabela com muitas variáveis em um formato de tabela em que seja possível usar filtros, fazer cálculos, subtotais (tabela normalizada). No final, uma tentativa frustrada de gerar um gráfico rápido, mas o Excel não se mostrou muito simples.