Notifications
Clear all

Classificar Frases

11 Posts
2 Usuários
0 Reactions
1,626 Visualizações
(@jcgmc)
Posts: 71
Trusted Member
Topic starter
 

Bom Dia a Todos!!

Solicito ajuda dos amigos pra este desafio, com alguma Fórmula, código ou VBA, que é fazer a classificação de um tipo de Históricos (Frases de exemplos). Vejam nos anexos.
A questão é que após muito ter procurado na NET, concluí que a única maneira deste tipo de classificação por Datas em um ListView, só mesmo por uma coluna auxíliar, como a que fiz no exemplo. Conto com a ajuda de todos, e acredito que irá ajudar a muitos com o mesmo problema. Minha planilha real já conta mais de 3.000 linhas e diáriamente é alimentada por novas.

Desde já muito grato a todos e...
Ótima semana!!

 
Postado : 09/03/2015 6:23 am
Issamu
(@issamu)
Posts: 605
Honorable Member
 

Olá jcgmc!

Pelo que entendi, você consegue resolver através de fórmulas, desde que crie uma coluna auxiliar para extrair a data da coluna com texto.

Eu criei na coluna E esta coluna de data, usando a fórmula em E5: =VALOR(EXT.TEXTO(D5;4;8))

Então, a fórmula em C5 ficou:

=ORDEM(E5;DESLOC($E$1;CORRESP(B5;B:B;0)-1;0;CONT.SE(B:B;B5));1)+CONT.SE(DESLOC($E$1;CORRESP(B5;B:B;0)-1;0;CONT.SE(INDIRETO("B5:B"&LIN());B5));E5)-1

Essa fórmula já ajusta a ocorrência de datas repetidas dentro dos códigos, não deixando repetir a classificação.

No momento tenho uma restrição no ambiente que estou e não consigo salvar o arquivo com as macros, por isso estou postando um arquivo sem macros para você visualizar as fórmulas.

Veja ai e comente!

Abraços!

Rafael Issamu F. Kamimura
Moderador Oficial Microsoft Community - MCC (Contribuidor do Microsoft Community)
http://zip.net/bjrt0X - http://zip.net/bhrvbR
Foi útil? Clique na mãozinha
Conheça: http://excelmaniacos.com/

 
Postado : 09/03/2015 7:20 am
(@jcgmc)
Posts: 71
Trusted Member
Topic starter
 

Brigadaum Rafael pelo rápido retorno!!

Bem à primeira vista, é isso mesmo vei, perfeito!!
Não entendi oq vc disse, "estou postando um arquivo sem macros para você visualizar as fórmulas"
A macro é que irá deixar tudo automático, sem as formulas???
Claro que aguardo sua macro pra finalizar isso aki!!! Rssssssss

Parabéns pelo seu conhecimento.
Grande Abraço!!

 
Postado : 09/03/2015 8:12 am
Issamu
(@issamu)
Posts: 605
Honorable Member
 

De nada jcgmc!

O que quis dizer é que o arquivo que você postou possui códigos em VBA e no momento eu não consigo salvar o arquivo que fiz mantendo estes códigos, devido a um programa de restrição no ambiente que estou agora.

A ideia é que você veja as fórmulas e copie para o seu arquivo de trabalho.

Abraços!

Rafael Issamu F. Kamimura
Moderador Oficial Microsoft Community - MCC (Contribuidor do Microsoft Community)
http://zip.net/bjrt0X - http://zip.net/bhrvbR
Foi útil? Clique na mãozinha
Conheça: http://excelmaniacos.com/

 
Postado : 09/03/2015 8:26 am
(@jcgmc)
Posts: 71
Trusted Member
Topic starter
 

Boa tde Rafael,

Seguinte, fiz o teste com as 50 primeiras linhas e ficou perfeito!!
Mas, qdo coloquei as 3.020 linhas, deu um inconviniente. Excel ficou Lerrrdo d+++ A cada clike em uma das linhas, ele faz todo o processo de atualização e numa lerdeza q sóoo.
Taum, queria te pedir a vc ou a quem mais puder colaborar, desenvolver um código em VBA pra obter o mesmo resultado. Será q pode ser...??
Aguardo.

Grato.

 
Postado : 09/03/2015 11:00 am
Issamu
(@issamu)
Posts: 605
Honorable Member
 

Experimente rodar o seguinte código:

Sub Classificar_Frases()
    
    Application.Goto Range("C5")
    
    
    Do Until ActiveCell.Offset(0, -1).Range("A1").Value = ""
        
        ActiveCell.Offset(0, 2).Range("A1").FormulaR1C1 = _
        "=VALUE(MID(RC[-1],4,8))"
        ActiveCell.Offset(0, 2).Range("A1").Value = ActiveCell.Offset(0, 2).Range("A1").Value
        ActiveCell.FormulaR1C1 = _
        "=RANK(RC[2],OFFSET(R1C5,MATCH(RC[-1],C[-1],0)-1,0,COUNTIF(C[-1],RC[-1])),1)+COUNTIF(OFFSET(R1C5,MATCH(RC[-1],C[-1],0)-1,0,COUNTIF(INDIRECT(""B5:B""&ROW()),RC[-1])),RC[2])-1"
        Selection.NumberFormat = "General"
        ActiveCell.Value = ActiveCell.Value
        ActiveCell.Offset(1, 0).Range("A1").Activate
        
    Loop
        
End Sub

Rafael Issamu F. Kamimura
Moderador Oficial Microsoft Community - MCC (Contribuidor do Microsoft Community)
http://zip.net/bjrt0X - http://zip.net/bhrvbR
Foi útil? Clique na mãozinha
Conheça: http://excelmaniacos.com/

 
Postado : 09/03/2015 11:40 am
(@jcgmc)
Posts: 71
Trusted Member
Topic starter
 

Boa noite Rafael,
Tamo quase láa!! Se não fosse o erro q está havendo. Veja o anexo.
Já analisei tudo de ponta a ponta e não sei o pq deste erro!! Mais adiante, tbém há outras linhas com o mesmo erro.
Te pergunto, este código é pra rodar no Excel 2003 nehh??

Grato.

 
Postado : 09/03/2015 10:04 pm
Issamu
(@issamu)
Posts: 605
Honorable Member
 

Experimente adicionar o comando de desativar os eventos no código que passei:


Sub Classificar_Frases()

Application.EnableEvents = False
    
    Application.Goto Range("C5")
    
    
    Do Until ActiveCell.Offset(0, -1).Range("A1").Value = ""
        
        ActiveCell.Offset(0, 2).Range("A1").FormulaR1C1 = _
        "=VALUE(MID(RC[-1],4,8))"
        ActiveCell.Offset(0, 2).Range("A1").Value = ActiveCell.Offset(0, 2).Range("A1").Value
        ActiveCell.FormulaR1C1 = _
        "=RANK(RC[2],OFFSET(R1C5,MATCH(RC[-1],C[-1],0)-1,0,COUNTIF(C[-1],RC[-1])),1)+COUNTIF(OFFSET(R1C5,MATCH(RC[-1],C[-1],0)-1,0,COUNTIF(INDIRECT(""B5:B""&ROW()),RC[-1])),RC[2])-1"
        Selection.NumberFormat = "General"
        ActiveCell.Value = ActiveCell.Value
        ActiveCell.Offset(1, 0).Range("A1").Activate
        
    Loop

Application.EnableEvents = True

End Sub

Rafael Issamu F. Kamimura
Moderador Oficial Microsoft Community - MCC (Contribuidor do Microsoft Community)
http://zip.net/bjrt0X - http://zip.net/bhrvbR
Foi útil? Clique na mãozinha
Conheça: http://excelmaniacos.com/

 
Postado : 10/03/2015 4:58 am
(@jcgmc)
Posts: 71
Trusted Member
Topic starter
 

Boa tde Rafael!!
Agora sim, funcionou!! Rss
Mas como fazer pra ele pôr a numeração tipo: 01, 02, 03...
Aguardo. T++

 
Postado : 10/03/2015 2:16 pm
Issamu
(@issamu)
Posts: 605
Honorable Member
 

Para ficar como 01 formate as células de forma personalizada utilizando 00.

Rafael Issamu F. Kamimura
Moderador Oficial Microsoft Community - MCC (Contribuidor do Microsoft Community)
http://zip.net/bjrt0X - http://zip.net/bhrvbR
Foi útil? Clique na mãozinha
Conheça: http://excelmaniacos.com/

 
Postado : 10/03/2015 2:26 pm
(@jcgmc)
Posts: 71
Trusted Member
Topic starter
 

Taum Rafel,
Já fiz isso na formatação 0#
Mas na ListView, ainda insisti em exibir tdo em 1, 2, 3..... =(
???

 
Postado : 10/03/2015 4:10 pm