Como posso "agrupar por" e somar uma coluna no excel?

144

Estou tentando descobrir como "agrupar por" valores em uma planilha do Excel.

Dado o exemplo a seguir (esta é uma folha de inventário que eu uso no meu restaurante :)

Amostra de planilha

No extremo direito da planilha, há uma coluna chamada Custo dos produtos vendidos.

Eu gostaria de poder apresentar um valor total de CPV para cada categoria.

Isso é possível no excel? Além disso, eu gostaria de fazê-lo em uma planilha separada para que a primeira planilha (que é mostrada na foto) não seja afetada.

Alguma ideia?

Obrigado!

Ian P
fonte

Respostas:

89

O recurso que você deseja usar é Tabelas Dinâmicas . É realmente fácil fazer exatamente o que você deseja com apenas alguns cliques depois de aprender a usar esse recurso.

Scott Obert
fonte
50
Isso não responde à pergunta
Iron Savior
1
Há algumas instruções básicas nesta resposta stackoverflow.com/a/15838994/74585
Matthew Bloqueio
1
Continue rolando para obter uma resposta clara e concisa: superuser.com/a/1204086/164123
Jordan Morris
58

Você também pode fazer isso com o recurso Subtotal.

  1. Clique na guia Dados na barra de ferramentas da faixa de opções do Excel
  2. Clique no botão Classificar e classifique por sua coluna de categoria
  3. Clique no botão Subtotal e preencha a caixa de diálogo conforme apropriado e clique em OK

Por exemplo...

A cada alteração em: Categoria

Use a função: Soma

Adicionar subtotal a: Custo dos produtos vendidos

roubar
fonte
3
Onde está o botão do subtotal? Você poderia adicionar uma captura de tela?
Matthew Bloqueio
3
@MatthewLock, consulte addintools.com/documents/excel/where-is-subtotal-button.html (e i.imgur.com/kkSa2AB.png ). Observe que o botão está desativado ao usar tabelas .
Matt Wilkie
15

Suponho que você esteja procurando o CPV total de uma conta como supermercado, por exemplo, para a semana 1.

sumifé a maneira mais fácil de obter esses dados. exemplo tirado da sua foto:

=sumif(d2:d?,"grocery",j2:j?)

Coloquei os pontos de interrogação, pois não consigo ver a folha inteira. Você selecionaria a coluna D completa onde você tem dados da conta. D2 a D ?, o mesmo com a coluna de uso semanal J2 a J ?.

A fórmula procurará na mercearia D na coluna D, se estiver presente, adicionará as células na coluna J que correspondem às colunas D que contenham a palavra mercearia. (ou qualquer texto que você colocar na fórmula para procurar)

JLewis
fonte
Esta é uma solução excelente e super fácil. As tabelas dinâmicas são um exagero para muitas necessidades como essa.
507 Jones Jones
5

A abordagem mais trivial pode ser uma operação de classificação do Excel seguida por uma operação de subtotal do Excel.

Ele produz o que você procura sem alterar todo o layout dos seus dados, como faria a operação Pivot.

Ordenação

  • Clique na guia Dados (ou pressione Alt-A no teclado)
  • Clique em Classificar (ou pressione S no teclado)
  • Clique na seta suspensa ao lado de "Classificar por" na área principal da janela pop-up.
  • Selecione "Categoria", pois é isso que você deseja agrupar.
  • Clique OK!

Subtotal

  • Clique na guia Dados (ou pressione Alt-A no teclado)
  • Clique no ícone Subtotal (ou pressione B no teclado)
  • Agora que seus dados estão classificados, leia e preencha o pop-up Subtotal como se estivesse lendo inglês natural :
           A cada mudança de
              Categoria (clique na seta suspensa e selecione esta)
           Usar função
              Soma (clique na seta suspensa e selecione esta opção)
           Adicionar subtotal a
              Custo do produto vendido (selecione as colunas que você deseja totalizar para categorias individuais)

       Click OK!
    

  • Bharat Patel
    fonte
    4

    No Excel 2013, haverá uma opção de "agrupamento".

    1. Selecione sua mesa.
    2. Vá para a guia Dados.
    3. Clique em Estrutura> Agrupamento.

    Veja a captura de tela abaixo, infelizmente, é alemã - mas os ícones o ajudarão a encontrá-la.

    Gliederung> Gruppieren

    Waqar Lim
    fonte
    4

    Para fazer isso com uma tabela dinâmica :

    1) Selecione todos os dados (incluindo os rótulos das colunas)
    2) Inserir> Tabela dinâmica
    3) Arraste a dimensão para agrupar na área de colunas ou linhas
    4) Arraste a métrica para somar na área de valores

    insira a descrição da imagem aqui

    AlexG
    fonte
    Esta deve ser a resposta aceita
    Jordan Morris
    1
    O Excel v.16.28 possui Data/ Summarize with PivotTablenão "Inserir".
    eel ghEEz 16/09
    1

    Eu faço isso o tempo todo com vba. Tenho certeza de que usei o mesmo método desde o escritório 95 ', com pequenas alterações feitas para o posicionamento da coluna. Isso pode ser feito com menos linhas se você não definir as variáveis. Isso pode ser feito mais rapidamente se você tiver muitas linhas para percorrer ou mais coisas com as quais precisa definir seu grupo.

    Eu me deparei com situações em que um 'grupo' é baseado em 2 a 5 células. Este exemplo analisa apenas uma coluna, mas pode ser expandida facilmente se alguém dedicar algum tempo para brincar com ela.

    Isso pressupõe 3 colunas e você deve classificar pela coluna group_values. Antes de executar a macro, selecione a primeira célula que você deseja comparar na coluna group_values.

    'group_values, some_number, empty_columnToHoldSubtotals
    '(o material vai aqui)
    'cookie 1 vazio
    'cookie 3 vazio
    Bolo 4 vazio
    0 chapéu vazio
    'hat 3 empty
    '...
    'Pare
    
    Subtotal ()
      'define duas strings e um contador de subtotal
      Dim thisOne, thatOne As String
      Dim subCount As Double
    
      'semear os valores
      thisOne = ActiveCell.Value
      thatOne = ActiveCell.Offset (1, 0)
      subCount = 0
    
      'configure um loop que irá até atingir um valor de parada
      While (ActiveCell.Value <> "stop")
    
        'compara um valor de célula com a célula abaixo dela.
        If (thisOne = thatOne) Então
          'se as células forem iguais, a contagem de linhas será adicionada à subconta
          subCount = subCount + ActiveCell.Offset (0, 1) .Value
    
        Outro
          'se as células não forem iguais, a subconta é gravada e o subtotal é redefinido.
          ActiveCell.Offset (0, 2) .Value = ActiveCell.Offset (0, 1) .Value + subCount
          subCount = 0
    
        Fim se
    
        'selecione a próxima célula abaixo
        ActiveCell.Offset (1, 0) .Selecione
    
        'atribua os valores da célula ativa e a abaixo dela às variáveis
        thisOne = ActiveCell.Value
        thatOne = ActiveCell.Offset (1, 0)
      Wend
    
    End Sub
    
    dp_here
    fonte
    -2

    1) Selecione o intervalo de dados.
    2) Copie o intervalo para a área de transferência.
    3) Abra o novo acesso à base de dados.
    4) Crie uma nova tabela ou faixa de colagem.
    5) Criar Visualização, Visualização SQL.
    6) Criar consulta "SELECT cell, SUM (data) AS Total FROM Table GROUP BY cell".

    user324532
    fonte
    -3

    No Excel 2013:

    -Clique em Dados

    -Clique no subtotal

    boomhauer
    fonte