À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
'Get the specific Column
'Here my instance is "B" column
'You can change it to your case
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)
'Create a new Excel workbook
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").Select
objSheet.Paste
For nRow = 2 To nLastRow
If CStr(objWorksheet.Range("B" & nRow).Value) = CStr(varColumnValue) Then
'Copy data with the same column "B" value to new workbook
objWorksheet.Rows(nRow).EntireRow.Copy
nNextRow = objSheet.Range("A" & objWorksheet.Rows.Count).End(xlUp).Row + 1
objSheet.Range("A" & nNextRow).Select
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
| 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






