Note: The other languages of the website are Google-translated. Back to English

Como dividir dados em várias planilhas com base em colunas 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 imagem a seguir), e os nomes são inseridos aleatoriamente. Talvez você possa classificá-los primeiro e, em seguida, copiá-los e colá-los um por um em outras novas planilhas. Mas isso exigirá sua paciência para copiar e colar repetidamente. Hoje, falarei sobre alguns truques rápidos para resolver essa tarefa.

doc dividir dados por colunas 1

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

Divida os dados em várias planilhas com base na coluna com o Kutools para Excel


Divida os 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 escolha. Faça o seguinte:

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

2. Clique inserção > Móduloe cole o código a seguir na janela do módulo.

Sub Splitdatabycol()
'updateby Extendoffice
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
Dim xWS 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
Set xWS = Sheets.Add(after:=Worksheets(Worksheets.Count))
xWS.Name = myarr(i) & ""
Else
xWS.Move after:=Worksheets(Worksheets.Count)
End If
xWSTRg.Range(title).Copy
xWS.Paste Destination:=xWS.Range("A1")
ws.Range("A" & (titlerow + xTRg.Rows.Count) & ":A" & lr).EntireRow.Copy xWS.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 para executar o código e uma caixa de prompt é exibida para lembrá-lo de selecionar a linha de cabeçalho, consulte a captura de tela:

doc dividir dados por colunas 7

4. E então, clique OK botão, e na segunda caixa de prompt, selecione os dados da coluna que você deseja dividir com base, consulte a captura de tela:

doc dividir dados por colunas 8

5. Então clique OK, e todos os dados da 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 imagem:

doc dividir dados por colunas 2

Nota: As planilhas divididas são colocadas no final da pasta de trabalho onde a planilha principal está.


Divida os dados em várias planilhas com base na coluna com o Kutools para Excel

Como um iniciante do Excel, esse longo código VBA é um tanto difícil para nós, e a maioria de nós nem sabe como modificar o código conforme nossa necessidade. Aqui, vou apresentar a você uma ferramenta multifuncional -Kutools for Excel, as TIC Dividir Dados utilitário não só pode ajudá-lo a dividir dados em várias planilhas com base na coluna, mas também pode dividir dados por contagem de linhas.

NOTAPara aplicar isso Dividir Dados, em primeiro lugar, você deve baixar o Kutools for Excele, em seguida, aplique o recurso de forma rápida e fácil.

Depois de instalar Kutools for Excel, por favor, faça o seguinte:

1. Selecione o intervalo de dados que deseja dividir.

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

doc dividir dados por colunas 3

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

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

2). Em seguida, você pode especificar os nomes da planilha dividida, no Nome da nova planilha seção, especifique as regras de nomes de planilha do Regras lista suspensa, você pode adicionar o Prefixo or Sufixo para os nomes das folhas também.

3). Clique no OK botão. Veja a imagem:

doc dividir dados por colunas 4

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

doc dividir dados por colunas 5

Clique para baixar Kutools para Excel e avaliação gratuita agora!


Divida os dados em várias planilhas com base na coluna com o Kutools para Excel

Kutools for Excel inclui mais de 300 ferramentas úteis do Excel. Gratuito para testar sem limitação em 30 dias. Baixe o teste gratuito agora!


Artigo relacionado:

Como dividir dados em várias planilhas por contagem de linhas?


As melhores ferramentas de produtividade para escritório

O Kutools for Excel resolve a maioria dos seus problemas e aumenta sua produtividade em 80%

  • armadilha para peixes: Insira rapidamente fórmulas complexas, gráficos e qualquer coisa que você tenha usado antes; Criptografar células com senha; Criar lista de discussão e enviar emails ...
  • Barra Super Fórmula (edite facilmente várias linhas de texto e fórmula); Layout de leitura (ler e editar facilmente um grande número de células); Colar na faixa filtrada...
  • Mesclar células / linhas / colunas sem perder dados; Dividir o conteúdo das células; Combinar linhas / colunas duplicadas... Evite células duplicadas; Comparar intervalos...
  • Selecione Duplicado ou Único Linhas; Selecione linhas em branco (todas as células estão vazias); Super Find e Fuzzy Find em muitos livros; Seleção aleatória ...
  • Cópia exata Várias células sem alterar a referência da fórmula; Criação automática de referências para várias folhas; Inserir marcadores, Caixas de seleção e mais ...
  • Extrair Texto, Adicionar texto, remover por posição, Remover Espaço; Criar e imprimir subtotais de paginação; Converter entre conteúdo de células e comentários...
  • Super Filtro (salvar e aplicar esquemas de filtro a outras planilhas); Classificação Avançada por mês / semana / dia, frequência e mais; Filtro Especial por negrito, itálico ...
  • Combine pastas de trabalho e planilhas; Mesclar tabelas com base em colunas-chave; Divida os dados em várias folhas; Conversão em lote de xls, xlsx e PDF...
  • Mais de 300 recursos poderosos. Suporta Office / Excel 2007-2021 e 365. Suporta todos os idiomas. Fácil implantação em sua empresa ou organização. Recursos completos de avaliação gratuita de 30 dias. Garantia de devolução do dinheiro em 60 dias.
guia kte 201905

Guia do Office traz interface com guias para o Office e torna seu trabalho muito mais fácil

  • Habilite a edição e leitura com guias em Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Abra e crie vários documentos em novas guias da mesma janela, em vez de em novas janelas.
  • Aumenta sua produtividade em 50% e reduz centenas de cliques do mouse para você todos os dias!
parte inferior da aba do escritório
Comentários (303)
Ainda não há classificações. Seja o primeiro a avaliar!
Este comentário foi feito pelo moderador no site
Dividir dados em várias planilhas com base na coluna com código VBA mostra algum erro. por favor, tente corrigi-lo e atualize o mesmo. Se você fornecer os arquivos de exemplo do Excel, será muito útil.
Este comentário foi feito pelo moderador no site
Oi, obrigado pelo código que funciona para mim! Estou tentando encontrar um código que divida uma planilha mestra em várias planilhas com base na data
Este comentário foi feito pelo moderador no site
Isso foi incrível! Esse processo me levaria mais de uma hora para fazer, mas foi feito em 30 segundos. Este eu vou manter para minha biblioteca VBA. Obrigada!
Este comentário foi feito pelo moderador no site
Olá, tenho 30000 células na minha planilha e preciso dividi-las em meses. existe um código que eu possa usar para fazer isso mais rápido. Eu tenho 8 colunas e a data é a coluna B. Eu tenho brincado com o código acima que é dado, mas falhando muito. Você poderia por favor me ajudar com isso. desde já, obrigado
Este comentário foi feito pelo moderador no site
Estou recebendo o seguinte erro: Erro de tempo de execução '6' estouro Após a depuração, mostre a linha For i = 2 To Ir Minhas linhas do Excel estão acima de 500,000. Existe alguma solução Muito obrigado pelo código. Atenciosamente Lok
Este comentário foi feito pelo moderador no site
Olá, muito obrigado pelo código. estou recebendo o seguinte erro: Erro de tempo de execução '6' estouro na linha For i = 2 To Ir Qualquer solução para isso. Obrigada
Este comentário foi feito pelo moderador no site
Recebo um erro ao pressionar F5 - GoTo Box pedindo uma referência?
Este comentário foi feito pelo moderador no site
O processo VBA funcionou perfeitamente, muito obrigado por compartilhar sua experiência e me poupar muito tempo!
Este comentário foi feito pelo moderador no site
O código VBA funcionou perfeitamente. Parece não atualizar as planilhas conforme as alterações são feitas na Planilha1. Por favor, ajude.
Este comentário foi feito pelo moderador no site
Oi, obrigado pelo código que funciona para mim! Só tenho duas perguntas/observações. 1 os dados copiados não incluem o layout do arquivo original. Seria possível copiar os dados como tabela com autofiltro? 2 os dados copiados não parecem estar limitados ao intervalo de títulos. É possível ajustar o código para um intervalo ou nome de tabela específico? Esses ajustes seriam muito úteis. Abraços, Pieter
Este comentário foi feito pelo moderador no site
Funciona como um encanto! Obrigada.
Este comentário foi feito pelo moderador no site
Funciona como um encanto... Obrigado pelo código premium... :lol:
Este comentário foi feito pelo moderador no site
Muito obrigado, isso funcionou muito bem. No entanto, o que acontece se eu quiser que os dados em cada guia sejam classificados novamente (usando a coluna antera)? Basicamente, este VBA o divide em guias, mas eu posso querer que ele seja dividido ainda mais... isso é possível?
Este comentário foi feito pelo moderador no site
Oi Jonathan, Comentário antigo que eu conheço, mas pode ser útil para outros no futuro: eu precisava fazer isso, mas não consegui encontrar uma maneira fácil com o VBA. No entanto, descobri que se você criar uma nova coluna em sua planilha como uma amálgama dos 2, por exemplo =A1&" "&A2 Isso lhe dará 1 célula com os dois conjuntos de informações. Você pode então executar o módulo acima e funciona bem! Editar - Os dados nas colunas precisam ter menos de 30 caracteres, caso contrário, os dados não são copiados (aparece como um erro no módulo) e você obtém uma folha em branco no meio de suas novas planilhas.
Este comentário foi feito pelo moderador no site
Incrível.. Isso foi impressionante. Eu estava lutando com esse problema por tanto tempo e esse código veio como uma pausa. Obrigado por compartilhá-lo.
Este comentário foi feito pelo moderador no site
Incrível. Obrigado por publicar.
Este comentário foi feito pelo moderador no site
O código funcionou como um encanto para dados menores (menos de 1200 linhas). Tentei usar na planilha maior com (17000 linhas) e simplesmente travou depois de dividir em 10-12 folhas. Então, tentamos dividir os dados originais em 3 pastas de trabalho diferentes e ainda assim nos desativamos. Temos o Windows 7 e nossos computadores também não são tão lentos. Você sugere linhas limitadas nos dados para usar esse código com segurança? Qualquer sugestão será apreciada.
Este comentário foi feito pelo moderador no site
O código funcionou como um encanto para dados menores (menos de 1200 linhas). Tentei usar na planilha maior com (17000 linhas) e simplesmente travou depois de dividir em 10-12 folhas. Então, tentamos dividir os dados originais em 3 pastas de trabalho diferentes e ainda assim nos desativamos. Temos o Windows 7 e nossos computadores também não são tão lentos. Você sugere linhas limitadas nos dados para usar esse código com segurança? Qualquer sugestão será apreciada. O que não tenho certeza é: Qual é o número máximo de linhas que a macro pode suportar? Eu poderia brincar com isso... Está em algum lugar entre 20k e 40k![/quote]
Este comentário foi feito pelo moderador no site
Enfrentando o mesmo problema. O código funciona para planilhas onde os dados são menos linhas, no entanto, para dados maiores, mostra o erro "O Excel não pode concluir esta tarefa com os recursos disponíveis. Escolha menos dados ou feche outros aplicativos" (não há nenhum outro aplicativo funcionando ao mesmo tempo) O código funcionou como um encanto para dados menores (menos de 1200 linhas). Tentei usar na planilha maior com (17000 linhas) e simplesmente travou depois de dividir em 10-12 folhas. Então, tentamos dividir os dados originais em 3 pastas de trabalho diferentes e ainda assim nos desativamos. Temos o Windows 7 e nossos computadores também não são tão lentos. Você sugere linhas limitadas nos dados para usar esse código com segurança? Qualquer sugestão será apreciada.
Este comentário foi feito pelo moderador no site
Você é meu herói de todos os tempos! Eu procurei por isso por meses sem sorte. Eu tenho que fazer isso semanal / mensalmente quebrando relatórios em mais de 147 planilhas e eles não me darão kutools. Nessa nota .. Eu realmente preciso aprender a codificar. :( Mas obrigado!
Este comentário foi feito pelo moderador no site
OI, eu tenho uma planilha com 65000 registros e com 8 casos diferentes, então basicamente deve gerar 80 planilhas diferentes. Eu tentei executar este código, mas ele lança Runtime Error 6 Overflow. Este código pode ser ajustado para resolver meu problema? Por favor, sua ajuda será muito apreciada.
Este comentário foi feito pelo moderador no site
[quote]OI, eu tenho uma planilha com 65000 registros e com 8 casos diferentes, então basicamente deve gerar 80 planilhas diferentes. Eu tentei executar este código, mas ele lança Runtime Error 6 Overflow. Este código pode ser ajustado para resolver meu problema? Por favor, sua ajuda será muito apreciada.Por ACE[/quote] Tente alterar Dim vcol, i As Integer para Dim vcol, i As Long
Este comentário foi feito pelo moderador no site
Olá, tentei alterar o DIM vcol para LOng e estava funcionando bem, mas de repente, por meio de um erro, não há memória suficiente para concluir esta ação, tente usar menos dados ou fechar outros aplicativos. Embora eu não tenha nenhum outro aplicativo aberto. Estou tendo pouco mais de 100 mil linhas e aprox. Tamanho do arquivo de 16 MB. Qualquer ajuda seria apreciada. Obrigado Mustafá
Este comentário foi feito pelo moderador no site
Impressionante pedaço de código - funciona perfeitamente (se você alterar as variáveis ​​para o que sua planilha precisa)
Este comentário foi feito pelo moderador no site
Eu tenho uma planilha com um número variável de linhas. Uma das colunas são as datas que vão de 2010 em diante. As outras colunas são nomes de fundos com os dados NAV de cada fundo em relação à data. Portanto, não quero dividir as colunas em planilhas diferentes, quero dividir cada NOME DO FUNDO em sua própria planilha com os dados de NAV por data de fim de mês, não as datas diárias. Isso pode ser feito ou isso é impossível?
Este comentário foi feito pelo moderador no site
Eu tenho uma planilha que uso e estou tentando encontrar um código vba que reconize um nome de conta e copie a linha específica para uma nova pasta de trabalho e planilha com o mesmo nome, você pode ajudar?
Este comentário foi feito pelo moderador no site
Excelente! O código VBA está funcionando, obrigado! Eu preciso que essas planilhas de saída estejam em arquivos individuais do Excel em vez de planilhas e há erro quando eu divido em muitas planilhas.
Este comentário foi feito pelo moderador no site
Starscor e Tim se você quiser dividir as planilhas do arquivo em vários arquivos usando os nomes das linhas existe um pequeno código de macro nesta mesma página da web que faz isso, basta procurar por "dividir uma pasta de trabalho para separar arquivos do Excel" você vai encontrá-lo. Adicione o código desse exemplo ao final deste, excluindo o final duplicado e o sub, é claro, e você obterá um arquivo para cada um.
Este comentário foi feito pelo moderador no site
alguém pode me ajudar como classificar as colunas em planilhas diferentes na mesma pasta de trabalho ao mesmo tempo e também remover duplicatas em planilhas diferentes, pois tenho cerca de 65 planilhas na mesma pasta de trabalho
Este comentário foi feito pelo moderador no site
isso é tão emocionante! Obrigada. Estou procurando isso há algum tempo.
Este comentário foi feito pelo moderador no site
Excelente - obrigado por compartilhar isso. Até propaga destaques/formato para novas planilhas!
Não há comentários postados aqui ainda
carregar mais
Deixe o seu comentário
Postando como convidado
×
Avalie esta postagem:
0   Personagens
Locais sugeridos

Siga-nos

Copyright © 2009 - www.extendoffice.com. | Todos os direitos reservados. Distribuído por ExtendOffice. | | | Mapa do site
Microsoft e o logotipo do Office são marcas comerciais ou marcas registradas da Microsoft Corporation nos Estados Unidos e / ou em outros países.
Protegido por Sectigo SSL