À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.
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
- A princípio, selecione uma célula na coluna específica, como “Célula B1” em minha própria instância.
- Em seguida, vá para a guia "Dados" e clique no botão "Filtro".
- Em seguida, clique no botão “seta para baixo” no cabeçalho da coluna para exibir uma lista de opções de filtro.
- Agora, desmarque a opção “(Selecionar tudo)”.
- Depois disso, você pode selecionar uma opção de filtro, como “29.95” no meu exemplo, e clicar em “OK”.
- De uma vez, apenas os dados, cujo valor na coluna B é “29.95”, serão deixados.
- Em seguida, copie os dados filtrados e cole-os em uma nova pasta de trabalho do Excel.
- 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
- Em primeiro lugar, verifique se a planilha específica está aberta.
- Em seguida, inicie o editor VBA de acordo com “Como executar o código VBA no seu Excel".
- 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
- Depois disso, clique no ícone “Executar” na barra de ferramentas ou pressione o botão da tecla “F5”.
- Quando a macro terminar, as pastas de trabalho separadas do Excel serão criadas com os dados divididos da planilha Excel de origem.
- Cada pasta de trabalho será semelhante à captura de tela a seguir.
Comparação
Diferenciais | 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