Como converter uma tabela em resumo, como mostrado

1

Eu tenho a tabela abaixo. Eu quero adicionar linhas para uma categoria e soma todas (excluindo nulo) mesma espécie (digamos limão), o mesmo comprimento de espécies em cada categoria . Agora eu quero consolidar a tabela como mostrado - adicionar linhas em cada categoria deve ser de tamanho diferente e automático, por ex. pode não haver todas as 120 espécies sob A.

N.B. Eu tentei pivotar mas falhei. Eu tenho mais de 100 espécies e 1000 categorias

    
por SIslam 10.03.2016 / 14:06

2 respostas

2

A Tabela Dinâmica pode ajudar nesse caso. Os dados de origem devem ser colocados em linhas, como registros em um banco de dados. Aqui está um exemplo de configuração da tabela dinâmica.

  1. Copie o intervalo de origem.

  • Cole e transponha.
  • Crie uma tabela dinâmica nos dados transpostos.
  • Arraste os nomes das categorias "A", "B" e "C" do topo para a área "Valores".
  • Arrastarnomesdecategoriaparaaárea"Valores">> </a> </p>

<ol start="5">
<li> Altere um tipo de cálculo de "Contagem" para "Soma" para cada um dos nomes de categoria. </li>
</ol>
<p> <a href="https://i.stack.imgur.com/OdNb8.png"> <img src="https://i.stack.imgur.com/OdNb8.png"></a></a></p><p><ahref="https://i.stack.imgur.com/prlbI.png"> <img src="https://i.stack.imgur.com/prlbI.png"></a></a></p><p><strong>UPDATEparaositens4e5</strong></p><p>Sehouvermuitascategorias,vocêpodeautomatizarositens4e5-executeamacroabaixoparamovertodososcampos(masoprimeiro)paraaárea"Valores" com o tipo de cálculo "Soma": </p>

 <pre class="lang-vb prettyprint-override"><code>Sub AddDataFields()
    With ActiveSheet.PivotTables(1)
        Set objPivotFields = .PivotFields
        For i = 2 To objPivotFields.Count
            Set objPivotField = objPivotFields(i)
            Debug.Print objPivotField.Caption
            .AddDataField objPivotField, "Sum of " & objPivotField.Caption, xlSum
        Next
    End With
End Sub
</code></pre> 

<ol start="6">
<li> Arraste o campo "Σ Valores" da área "Etiquetas de coluna" para "Rótulos de linha" e arraste "Categoria" da parte superior para a área "Rótulos de linha". </li>
</ol>
<p> <a href="https://i.stack.imgur.com/PBQcn.png"> <img src="https://pt.stack.imgur.com/PBQcn.png"alt=

    1. Alterar o layout do relatório para um formato tabular.

  • Como resultado, você tem agora as espécies e o tamanho das somas em uma coluna.
  • Você pode configurar um filtro de marcadores para recuperar apenas as quantidades de espécies.
  •     
    por 13.03.2016 / 15:12
    1

    Veja um exemplo prático que pode ajudar você:

    Issoprovavelmenteexigeo SUMIF (intervalo, critérios, função [sum_range]) que funciona mais ou menos assim:

    foreach element in range {
        if element == criteria {
            sum = sum + corresponding element in sum_range
        }
    }
    return sum
    

    Nesse caso, você colocaria algo como (consulte minha captura de tela):

    C9 = SUMIF(1:1;B9;2:2)
    

    que varre toda a primeira linha e toda vez que encontra um rótulo que corresponda ao que você coloca na célula B11, ele pega o valor correspondente na linha 2.

    Para a soma do tamanho da espécie, você pode usar a função CONCATENATE do Excel fazendo:

    D9 = SUMIF(1:1;CONCATENATE(B9;"_length");2:2)
    

    Espero que isso ajude.

    Ah, mais uma coisa, manter as referências constantes enquanto você arrasta para que você possa preencher várias células, coloque um $ na referência:

    C9 = SUMIF($1:$1;B9;$2:$2)
    

    Desta forma, apenas B9 muda à medida que você arrasta para baixo para referenciar B10, B11 e assim por diante.

        
    por 10.03.2016 / 15:21