classificação de da...
 
Notifications
Clear all

classificação de dados progressiva "todas as colunas"

12 Posts
2 Usuários
0 Reactions
1,516 Visualizações
(@edcronos)
Posts: 1006
Noble Member
Topic starter
 

eu estava querendo fazer uma classificação de dados progressiva

a - b - c - d ---->> a - b - c - d <-colunas
1 - c - 3 - 5 ---->> 1 - b - 1 - 6
1 - b - 2 - 6 ---->> 1 - b - 2 - 6
3 - a - 2 - 4 ---->> 1 - c - 2 - 6
2 - b - 4 - 3 ---->> 1 - c - 3 - 5
1 - b - 1 - 6 ---->> 2 - b - 4 - 3
1 - c - 2 - 6 ---->> 3 - a - 2 - 4

por uma coluna apenas é fácil,
Mas como classificar todas as colunas sem perder as primeiras referencias?

estava pensando em fazer uma normal com a 1ª coluna como referencia
depois por macro selecionar blocos inteiros com os valores iguais nas colunas até chegar na ultimas coluna

mas seria um processo exaustivo até varrer todos os blocos,
depois da primeira classificação normal, a macro teria que selecionar o primeiro bloco com a primeira coluna com valores iguais até varrer todos os valores da primeira coluna, depois pular para a segunda coluna até completar a ultima

talvez concatenar os valores para gerar um inteiro
uma coluna auxiliar com os valores concatenados e a classificação por ela
mas funcionaria com textos e numeros juntos

bem concatenar puro não funciona ...
."ainda vou fazer um teste com multiplicar os valores das colunas como se fossem casas decimais *10-*100-*1000... :? já vi que isso vai dar erro

se alguem tiver alguma ideia mais pratica ou algo já pronto eu agradeço

Att.

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 24/08/2014 11:59 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde!!

Considerando que você tem um cabeçalho em A1:D1

Sub AleVBA_12877()
    Range("A1:D7").Select
    Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Key2:=Range("B1") _
        , Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
        False, Orientation:=xlTopToBottom
End Sub

Lembre se de usar o gravador de macros!!!

Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 24/08/2014 12:46 pm
(@edcronos)
Posts: 1006
Noble Member
Topic starter
 

alexandre, boa tarde

nesse caso não tem cabeçalho
bem,
ou eu não entendi sua proposta "eu fugi das aulas básicas" ,
ou eu não me expliquei direito.

No caso eu tenho vários setores de dados com quantidade de colunas diferentes, e de linhas

eu quero colocar as linhas na ordem crescente
1a4
2b5
3c6
Alinhar pela 1ª coluna, depois pela 2ª...
mas sem perder a ordem da primeira coluna e sem desordenar os valores das linha
tipo uma cascata múltipla
att

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 24/08/2014 2:42 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Ponha o cabeçalho execute a macro!!!

Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 24/08/2014 2:51 pm
(@edcronos)
Posts: 1006
Noble Member
Topic starter
 

desculpe, até tentei
mas realmente não entendi o funcionamento.

exemplo
na linha 1 coloquei de 1 a 10
eu quero organizar da linha 7 até a linha 12
os dados vai da coluna A até J
mas os valores chaves estão da coluna D até a coluna i

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 24/08/2014 3:26 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Edcronos, as vezes vc complica demais.

Sua tabela da pergunta original é uma só, com mesmo número de linhas em todas as colunas.
É possível usar a classificação da forma que o AlexVBA sugeriu, que é a .. digamos... forma antiga, que o Excel 2003 e anteriores faziam.

Assim é possível fazer classificação *progressiva com até 3 colunas.

Usando o gravador de macros e usando o recurso de classificação atual do Excel, a macro já sai bem diferente do que saía em no Excel 2003.
Hoje você pode usar quantas colunas quiser como critérios de classificação. Todas as colunas obedecerão o que você propôs na primeira postagem.

Digo, se vc quer algo diferente, com total de linhas diferente em cada coluna, sugiro que você poste um modelo básico de como seus dados estão dispostos e como você deseja vê-los ao rodar a macro... assim teremos uma ideia completa do que está procurando...

FF

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 24/08/2014 5:35 pm
(@edcronos)
Posts: 1006
Noble Member
Topic starter
 

é... sei que complico mesmo,
mas é que eu não tinha entendido mesmo oq ele estava falando
tinha tentado usar o gravador de macro mas não tinha ficado do jeito que queria

e descobri agora uma caixinha para selecionar o cabeçalho :oops:

e eu já tinha planejado toda uma macro para o processo usando array e tudo... :roll:
isso que dá fugir das aulas por acha-las chatas ...

att

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 24/08/2014 5:58 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa noite!!

Eu fico feliz que resolveu, obrigado pelo retorno!!

Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 24/08/2014 6:24 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

p.s.: não existe recurso *embutidos (built-in) de classificar matrizes...
e se for fazer com várias colunas de critério, vai ser lento e complicado...

use o que o alex sugeriu que vc se dará bem !

Alex, eu sempre codifico desse jeito, quando usamos até 3 critérios.. quando há mais, o novo uso de classificação (e consequentemente a nova macro) acaba sendo mais ampla e mais útil.. mas é mais difícil de escrever... eu sempre gravo e depois destrincho (se é que é assim que escreve)...

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 24/08/2014 7:41 pm
(@edcronos)
Posts: 1006
Noble Member
Topic starter
 

fernando eu não sei se ficaria lento pq não cheguei a terminar a macro
mas a parte que fiz foi a seguinte
primeiro organiza da maneira normal do excel e jogava para um array
a macro procurava a 1ª coluna as linhas com valores iguais
verificava na coluna seguinte o menor valor e jogava para o inicio da array auxiliar
fazia isso até completar todos os valores da primeira coluna
depois passava para a array auxliar e fazia o mesmo processo separado cada bloco de valores iguais
pelo que analisei estava indo be, mas não cheguei a fazer o teste com o dados reais e as mais de 6000 linhas

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 24/08/2014 7:58 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Edcronos, vá por mim, tem coisas que tentamos fazer "na mão"... isso as vezes é reinventar a roda... o Excel oferece recursos interativos que podem ser usados com macros, bastando os dados estarem em planilha...

Eu digo qualquer forma de programar que envolva mais de uma linha de código para classificar dados de uma tabela, vai ser mais lenta que usar o recurso do Excel de classificar dados, seja via macro, seja via excel interativo... as vezes precisamos ceder e de fato usar os recursos interativos... e é por isso que meu modelo de projeto conta com uma planliha que eu chamei de shtTemp....

todos, repito TODOS, os códigos VBA de classificação de matrizes ou dados, disponíveis na internet, serão mais lentos do que usar o recurso interno do Excel...
Então, neste caso, vale a pena usar o que o Excel disponibiliza....

FF

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 24/08/2014 8:10 pm
(@edcronos)
Posts: 1006
Noble Member
Topic starter
 

Eu somente estava tentando dessa maneira "Complicada" pq não vi uma solução simples

tanto que antes de postar no fórum eu tentei gravar uma macro para ver a lógica
mas não tinha visto maneira de fazer oq eu queria

tanto que nem entendi oq o alexandre explicou
o pior é que já tinha usado isso antes "mas memoria com pouco espaço né, aprendo uma coisa esqueço outra :cry: "

Ps> se puder apague esse topico meu,
viewtopic.php?f=10&t=12872
ninguem vai responder a essa maluquice mesmo

Att.

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 24/08/2014 8:21 pm