Como posso dividir dados de linha em planilhas alfabéticas?

0

Eu tenho um arquivo do Excel com uma folha de origem contendo muitas colunas. A coluna 1 é o texto e a coluna 2 em diante pode ter qualquer formato.

O que eu quero é de mais 27 folhas no mesmo arquivo chamado #, A, B, ... Y, Z.

Como você pode imaginar, a planilha # conterá todas as linhas da planilha fonte (na mesma ordem) onde a primeira coluna começa com qualquer coisa além de A-Z.

A mesma folha de caminho A conterá todas as linhas da folha de origem (na mesma ordem) em que a primeira coluna começa com A e assim por diante.

A folha de origem também tem uma linha de cabeçalho que deve ser copiada para todas as 27 novas folhas.

Eu tenho lutado e tentei muitas coisas, como agrupar e filtrar, e não, mas não consegui entender como elas funcionam.

Como posso conseguir isso?

    
por George Sutton 13.05.2013 / 19:10

1 resposta

2

Lembre-se de fazer o backup do seu arquivo antes de realizar qualquer uma dessas ações.

Em vez de filter , você deve sort na primeira coluna, que agrupará os dados. A partir daí, você pode selecionar as linhas de dados que deseja mover e, em seguida, recortá-las e colá-las na folha de que precisa.

Se alguns itens parecerem estar fora de ordem, lembre-se do seguinte em Como classificar corretamente os dados alfanuméricos no Excel :

When you sort a column that contains alphanumeric characters, the sort may return unexpected results. Excel sorts the values left to right, character by character. For example, if a cell contains the text "A100," Excel places the cell after a cell that contains the entry "A1" and before a cell that contains the entry "A11."

Você pode criar as guias manualmente. Se você ainda não tem e quer automatizar a criação das abas, você pode usar este código colado em ThisWorkbook no VBA Explorer ( Alt + F11 ). Em seguida, execute AddWorksheets da janela de macro ( Alt + F8 ). Quando estiver pronto, você pode voltar e excluí-lo da janela de macros.

Option Explicit
Option Base 1

Sub AddWorksheets()

    Dim Tabs As Variant
    Dim I As Byte
    Tabs = Array("#", "A", "B", "C", "D", "E", "F", "G", "H", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z")

    For I = LBound(Tabs) To UBound(Tabs)
        Sheets.Add(After:=Worksheets(Worksheets.Count)).Name = Tabs(I)
    Next I

End Sub
    
por 13.05.2013 / 21:01