2 meios rápidos para dividir o conteúdo de uma planilha do Excel em várias pastas de trabalho com base em uma coluna específica

Compartilhe agora:

Às vezes, na análise de dados, pode ser necessário dividir o conteúdo de uma planilha do Excel em várias pastas de trabalho do Excel de acordo com uma coluna específica. Agora, neste post, ensinaremos 2 maneiras rápidas de obtê-lo.

Muitos usuários freqüentemente precisam dividir uma planilha do Excel que contém grandes linhas de dados em várias pastas de trabalho separadas do Excel com base em uma coluna específica. Por exemplo, aqui está minha planilha de exemplo do Excel. Eu gostaria de dividir os dados desta planilha com base na coluna “Preço da licença única (US$)” em várias pastas de trabalho.

Exemplo de Planilha Excel

Em geral, você tenderá a usar o seguinte Método 1 para filtrar e copiar dados manualmente. Mas será muito tedioso e estúpido se houver muitas opções de filtro. Portanto, aqui mostramos também uma forma muito mais prática – o Método 2, que utiliza o VBA. Agora, continue lendo para obtê-los em detalhes.

Método 1: Copie o conteúdo para separar as pastas de trabalho do Excel após o filtro

  1. A princípio, selecione uma célula na coluna específica, como “Célula B1” em minha própria instância.
  2. Em seguida, vá para a guia "Dados" e clique no botão "Filtro".Filtrar dados
  3. Em seguida, clique no botão “seta para baixo” no cabeçalho da coluna para exibir uma lista de opções de filtro.
  4. Agora, desmarque a opção “(Selecionar tudo)”.Desmarque a opção "Selecionar tudo"
  5. Depois disso, você pode selecionar uma opção de filtro, como “29.95” no meu exemplo, e clicar em “OK”.
  6. De uma vez, apenas os dados, cujo valor na coluna B é “29.95”, serão deixados.Restam apenas dados filtrados
  7. Em seguida, copie os dados filtrados e cole-os em uma nova pasta de trabalho do Excel.Copie e cole o conteúdo
  8. Mais tarde, use a mesma maneira para dividir os outros dados em pastas de trabalho separadas do Excel.

Método 2: Dividir o conteúdo em lote em várias pastas de trabalho do Excel via VBA

  1. Em primeiro lugar, verifique se a planilha específica está aberta.
  2. Em seguida, inicie o editor VBA de acordo com “Como executar o código VBA no seu Excel".
  3. Em seguida, coloque o seguinte código no projeto “ThisWorkbook”.
Sub SplitSheetDataIntoMultipleWorkbooksBasedOnSpecificColumn() Dim objWorksheet As Excel.Worksheet Dim nLastRow, nRow, nNextRow As Integer Dim strColumnValue As String Dim objDictionary As Object Dim varColumnValues ​​As Variant Dim varColumnValue As Variant Dim objExcelWorkbook As Excel.Workbook Dim objSheet As Excel .Worksheet Set objWorksheet = ActiveSheet nLastRow = objWorksheet.Range("A" & objWorksheet.Rows.Count).End(xlUp).Row Set objDictionary = CreateObject("Scripting.Dictionary") For nRow = 2 To nLastRow 'Obter a coluna específica 'Aqui está minha instância Coluna "B" 'Você pode alterá-lo para o seu caso strColumnValue = objWorksheet.Range("B" & nRow).Value If objDictionary.Exists(strColumnValue) = False Then objDictionary.Add strColumnValue, 1 End If Next varColumnValues ​​= objDictionary.Keys For i = LBound(varColumnValues) To UBound(varColumnValues) varColumnValue = varColumnValues(i) 'Criar uma nova pasta de trabalho do Excel Set objExcelWorkbook = Excel.Application.Workbooks.Add Set objSheet = objExcelWorkbook.Sheets(1) objSheet.Name = objWorksheet.Name objWorksheet.Rows(1).EntireRow.Copy objSheet.Activate objSheet.Range("A1").Selecione objSheet.Paste For nRow = 2 To nLastRow If CStr(objWorksheet.Range("B" & nRow).Value) = CStr (varColumnValue) Then 'Copie os dados com o mesmo valor da coluna "B" para a nova pasta de trabalho objWorksheet.Rows(nRow).EntireRow.Copy nNextRow = objSheet.Range("A" & objWorksheet.Rows.Count).End(xlUp). Row + 1 objSheet.Range("A" & nNextRow).Selecione objSheet.Paste objSheet.Columns("A:B").AutoFit End If Next Next End Sub

Código VBA - Divida o conteúdo de uma planilha do Excel em várias pastas de trabalho com base em uma coluna específica

  1. Depois disso, clique no ícone “Executar” na barra de ferramentas ou pressione o botão da tecla “F5”.
  2. Quando a macro terminar, as pastas de trabalho separadas do Excel serão criadas com os dados divididos da planilha Excel de origem.Novas pastas de trabalho do Excel
  3. Cada pasta de trabalho será semelhante à captura de tela a seguir.Separar novas pastas de trabalho do Excel

Comparação

  Vantagens Desvantagens
Método 1 1. Fácil de operar para todos os usuários do Excel Problemático se houver muitas opções de filtro
2. Rápido se houver poucas opções de filtro
Método 2 Muito mais eficiente que o Método 1, independentemente da quantidade de opções de filtro Um pouco difícil de operar para iniciantes em VBA

Evite a perda de dados do Excel

Embora o MS Excel esteja se tornando cada vez mais avançado e sofisticado, ele ainda tende a falhar de tempos em tempos devido a diversos fatores, como suplementos maliciosos de terceiros ou erros humanos e assim por diante. Como a falha do Excel pode levar diretamente a Corrupção do Excel, para evitar a perda de dados do Excel, você deve fazer backup de seus arquivos do Excel regularmente. Caso contrário, você precisa aplicar uma ferramenta de reparo do Excel, como DataNumen Excel Repair para corrigir arquivos corrompidos do Excel.

Introdução do autor:

Shirley Zhang é especialista em recuperação de dados em DataNumen, Inc., líder mundial em tecnologias de recuperação de dados, incluindo SQL Server reparar e produtos de software de reparo do Outlook. Para mais informações visite www.datanumen.com

Compartilhe agora:

6 respostas para “2 meios rápidos para dividir o conteúdo de uma planilha do Excel em várias pastas de trabalho com base em uma coluna específica”

  1. Se eu quiser que cada nova pasta de trabalho seja chamada de “Pasta de trabalho” e qualquer valor que esteja na coluna B, como faço isso?

  2. Oi,

    existe uma maneira de ter os novos arquivos personalizados e salvos em uma pasta específica, por favor? Tudo funciona lindamente, além de nomear e salvar pastas personalizadas.
    Obrigado.

    Mark

  3. Olá. Como o código VBA mudará se as colunas forem trocadas de forma que o preço esteja na coluna A em vez da B? Tentei alterar o código por conta própria sem sucesso.

    Além disso, seria possível gerar novas planilhas a partir de um template já feito? Então, basicamente, quero que os dados sejam copiados para o modelo e salvos na pasta.

  4. Row é a fila. Te digo que vai da segunda fila até a última com conteúdo (a fila 1 é a cabécera). Para alterar a coluna tem que modificar onde pone .Range(“B”… para a coluna que você deseja. Se você quiser a série D .Range(“D”….

Deixe um comentário

O seu endereço de e-mail não será publicado. Os campos obrigatórios são marcados com *