Os cookies nos ajudam a oferecer nossos serviços. Ao utilizar nossos serviços, você concorda com a nossa utilização de cookies.
Dica: outros idiomas são traduzidos pelo Google. Você pode visitar o English versão deste link.
Entrar
x
or
x
x
Cadastre-se
x

or

Como dividir dados em múltiplas planilhas baseadas em coluna no Excel?

Supondo que você tenha uma planilha com enormes linhas de dados, e agora, você precisa dividir os dados em várias planilhas com base no Nome coluna (veja a captura de tela a seguir) e os nomes são inseridos aleatoriamente. Talvez você possa classificá-los primeiro e copiá-los e colá-los, um por um, em outras novas planilhas. Mas isso vai precisar da sua paciência para copiar e colar repetidamente. Hoje, vou falar sobre alguns truques rápidos para resolver essa tarefa.

dados divididos do documento por colunas 1

Divida dados em várias planilhas com base na coluna com código VBA

Divida dados em múltiplas planilhas com base em coluna com Kutools para Excel


Dividir dados em várias planilhas com base na coluna específica ou na contagem de linhas na planilha:

Se você deseja dividir uma planilha grande em várias planilhas com base em dados de coluna específicos ou contagem de linhas, o Kutools for Excel's Dados divididos recurso pode ajudá-lo a resolver esta tarefa de forma rápida e fácil.

dados divididos do documento por colunas 6

Kutools for Excel: com mais de 200 complementos úteis do Excel, grátis para tentar sem limitação nos dias 60. Baixe e teste grátis agora!


Divida dados em várias planilhas com base na coluna com código VBA


Se você deseja dividir os dados com base no valor da coluna de forma rápida e automática, o seguinte código VBA é uma boa opção. Por favor, faça o seguinte:

1. Mantenha pressionado o ALT + F11 chaves para abrir o Microsoft Visual Basic para Aplicações janela.

2. Clique inserção > Módulo, e cole o seguinte código na janela do módulo.

Sub Splitdatabycol()
Dim lr As Long
Dim ws As Worksheet
Dim vcol, i As Integer
Dim icol As Long
Dim myarr As Variant
Dim title As String
Dim titlerow As Integer
Dim xTRg As Range
Dim xVRg As Range
Dim xWSTRg As Worksheet
On Error Resume Next
Set xTRg = Application.InputBox("Please select the header rows:", "Kutools for Excel", "", Type:=8)
If TypeName(xTRg) = "Nothing" Then Exit Sub
Set xVRg = Application.InputBox("Please select the column you want to split data based on:", "Kutools for Excel", "", Type:=8)
If TypeName(xVRg) = "Nothing" Then Exit Sub
vcol = xVRg.Column
Set ws = xTRg.Worksheet
lr = ws.Cells(ws.Rows.Count, vcol).End(xlUp).Row
title = xTRg.AddressLocal
titlerow = xTRg.Cells(1).Row
icol = ws.Columns.Count
ws.Cells(1, icol) = "Unique"
Application.DisplayAlerts = False
If Not Evaluate("=ISREF('xTRgWs_Sheet!A1')") Then
Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = "xTRgWs_Sheet"
Else
Sheets("xTRgWs_Sheet").Delete
Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = "xTRgWs_Sheet"
End If
Set xWSTRg = Sheets("xTRgWs_Sheet")
xTRg.Copy
xWSTRg.Paste Destination:=xWSTRg.Range("A1")
ws.Activate
For i = (titlerow + xTRg.Rows.Count) To lr
On Error Resume Next
If ws.Cells(i, vcol) <> "" And Application.WorksheetFunction.Match(ws.Cells(i, vcol), ws.Columns(icol), 0) = 0 Then
ws.Cells(ws.Rows.Count, icol).End(xlUp).Offset(1) = ws.Cells(i, vcol)
End If
Next
myarr = Application.WorksheetFunction.Transpose(ws.Columns(icol).SpecialCells(xlCellTypeConstants))
ws.Columns(icol).Clear
For i = 2 To UBound(myarr)
ws.Range(title).AutoFilter field:=vcol, Criteria1:=myarr(i) & ""
If Not Evaluate("=ISREF('" & myarr(i) & "'!A1)") Then
Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = myarr(i) & ""
Else
Sheets(myarr(i) & "").Move after:=Worksheets(Worksheets.Count)
End If
xWSTRg.Range(title).Copy
Sheets(myarr(i) & "").Paste Destination:=Sheets(myarr(i) & "").Range("A1")
ws.Range("A" & (titlerow + xTRg.Rows.Count) & ":A" & lr).EntireRow.Copy Sheets(myarr(i) & "").Range("A" & (titlerow + xTRg.Rows.Count))
Sheets(myarr(i) & "").Columns.AutoFit
Next
xWSTRg.Delete
ws.AutoFilterMode = False
ws.Activate
Application.DisplayAlerts = True
End Sub

3. Então aperte F5 chave para executar o código, e uma caixa de aviso é exibida para lembrá-lo de selecionar a linha de cabeçalho, veja a captura de tela:

dados divididos do documento por colunas 7

4. E então, clique em OK botão, e na segunda caixa de prompt, por favor, selecione os dados da coluna que você deseja dividir com base, veja a imagem:

dados divididos do documento por colunas 8

5. Então clique OKe todos os dados na planilha ativa são divididos em várias planilhas pelo valor da coluna. E as planilhas divididas são nomeadas com os nomes das células divididas. Veja a captura de tela:

dados divididos do documento por colunas 2

notas: As folhas de cálculo divididas são colocadas no final do livro onde a planilha principal está em.


Divida dados em múltiplas planilhas com base em coluna com Kutools para Excel

Como iniciante do Excel, este código VBA longo é um pouco difícil para nós, e a maioria de nós nem sabe como modificar o código como nossa necessidade.

Aqui, vou apresentar-lhe uma ferramenta multifuncional -Kutools for Excel, as TIC Dados divididos O utilitário não só pode ajudá-lo a dividir dados em múltiplas planilhas com base na coluna, mas também pode dividir os dados por contagem de linhas.

Kutools for Excel : com mais de 300 complementos Excel úteis, grátis para tentar sem limitação em dias 60.

Se você instalou Kutools for Excel, faça o seguinte:

1. Selecione o intervalo de dados que deseja dividir.

2. Clique Kutools Plus > Planilha > Dados divididos, veja a captura de tela:

dados divididos do documento por colunas 3

3. No Dividir dados em várias planilhas caixa de diálogo, você precisa:

1). Selecione Coluna específica opção no Split baseado em seção e escolha o valor da coluna que você deseja dividir os dados com base na lista suspensa. (Se seus dados tiverem cabeçalhos e você quiser inseri-los em cada planilha de divisão nova, verifique Meus dados têm cabeçalhos opção.)

2). Então você pode especificar os nomes da planilha dividida, sob a Novo nome da planilha seção, especifique as regras de nomes de planilha da Regras lista suspensa, você pode adicionar o Prefixo or Sufixo para os nomes das folhas também.

3). Clique no OK botão. Ver captura de tela:

dados divididos do documento por colunas 4

4. Agora os dados são divididos em várias planilhas em uma nova pasta de trabalho.

dados divididos do documento por colunas 5

Clique para baixar o Kutools para Excel e teste gratuito agora!


Divida dados em múltiplas planilhas com base em coluna com Kutools para Excel

Kutools for Excel inclui mais do que 300 ferramentas úteis do Excel. Gratuito para tentar sem limitação nos dias 60. Baixe o teste gratuito agora!


Artigo relacionado:

Como dividir dados em múltiplas planilhas por contagem de linhas?



Ferramentas de produtividade recomendadas

Office Tab

ouro star1 Traga guias úteis para o Excel e outros softwares do Office, como o Chrome, o Firefox e o novo Internet Explorer.

Kutools for Excel

ouro star1 Surpreendente! Aumente sua produtividade em minutos 5. Não precisa de habilidades especiais, economize duas horas por dia!

ouro star1 300 Novos recursos para o Excel, Faça o Excel muito fácil e poderoso:

  • Mesclar células / linhas / colunas sem perder dados.
  • Combine e Consolide várias folhas e pastas de trabalho.
  • Comparar intervalos, copiar intervalos múltiplos, converter texto para data, unidade e conversão de moeda.
  • Contagem de cores, subtotais de paginação, classificação avançada e super filtro,
  • Mais Selecionar / Inserir / Excluir / Texto / Formato / Link / Comentário / Guias de trabalho / Ferramentas de trabalho ...

Tira de tela de Kutools para Excel

Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Courtney M · 1 years ago
    Using Kutools or Macros - how can I split and maintain a multi row header on all of the sheets?
  • To post as a guest, your comment is unpublished.
    Paras Gadhavi · 1 years ago
    Hi there,

    Thanks for sharing. This works for me partially. The code splits the data but only for one of the values in the column and creates blank sheets for others. Can you help me with this ?
  • To post as a guest, your comment is unpublished.
    cyndi · 1 years ago
    This code worked perfect with just three columns but when I tried to run it on a worksheet containing 14 columns and 21,767 rows I received and error message "Run time error 9, Subscript out of range". Any help would be appreciated
  • To post as a guest, your comment is unpublished.
    Ana · 1 years ago
    HI. it will give me an error "lr = ws.Cells(ws.Rows.Count, vcol).End(xlUp).Row"

    what did I do wrong?
  • To post as a guest, your comment is unpublished.
    Sandeep Jha · 1 years ago
    Hello I am new to VBA programming. Here I needed to filter rows based on 1st column data. So I used your VBA code but I don't know why the sheets that are created are created twice except for the last one. I can't figure out the error in this so can you please help me out?

    Thank You