Notifications
Clear all

Loteria buscar Dezena a direita de palavra especifica

46 Posts
6 Usuários
0 Reactions
7,021 Visualizações
(@xman2000)
Posts: 0
New Member
Topic starter
 

Olá Colegas!
assunto: buscar Dezena a direita de palavra especifica
errei o local do topico, podem mover pra seçao de formulas.
quero a principio uma formula, mas também ia precisar depois de um vba pra colocar num botão que já está até na planilha.

estou pegando os valores sorteados na loteria desse trecho.
Gostaria de uma formula para pegar o valor da primeira dezena sorteada (49), a partir da palavra 'num_sorteio', ou seja, Onze caracteres à direita depois da palavra 'num_sorteio', já incluida a 'aspa' final da palvara 'num_sorteio'.
essa formula é para ser colocada nas celulas A5 ate F5, referentes a cada uma das 6 dezenas sorteadas.
grato.

segue abaixo o trecho referido do qual sera extraído os valores.
--------------------------------------------------------------------------------
"1703|3.186.292,13|<span class="num_sorteio"><ul><li>49</li><li>03</li><li>35</li><li>39</li><li>23</li><li>26</li></ul></span>"

 
Postado : 10/05/2015 7:21 pm
(@xman2000)
Posts: 0
New Member
Topic starter
 

boa tarde, Colegas!

Lembrando para moverem este topico pra seção de funções.
usando a celula G25.
ressaltando que a função que preciso tem de ser de forma direta, sem uso de colunas auxiliares.
por enquanto, coloqueis umas colunas auxiliares para ajudar a construir a formula unica.
eu já descobri que a informação que preciso está depois depois de 46 caracteres, mais precisamente o caractere 47 e o 48, que por coincidencia formam a dezena 49.
preciso que a formula retorne a dezena 49 no campo resultado, celula G25.
a referencia que usei foi a palavra "sorteio" que está no 36 caractere, e a dezana desejada está 10 caracteres após, ou seja no 46 caractere.

segue anexa planilha de exemplo.
grato.

 
Postado : 11/05/2015 10:12 am
(@edcronos)
Posts: 1006
Noble Member
 

uma pergunta
vc vai mudar o metodo cada vez que a pagina retornar de maneira diferente?
vc viu que eu tinha feito um codigo que funcionava perfeitamente, mas na atualização a posição dos dados mudaram
agora tem essa sequencia de caracteres,
não é dificil fegar os valores dessa sequencia,
mas será que ela vai continuar?

parte do codigo que te fiz serve para a situação que vc quer

    Sub ImportFromWeb()

        Dim valn(1 To 1, 1 To 8)

      FullName = Range("fullname").Value

      Workbooks.Open Filename:=FullName

            dt = Split(Cells(10, 1).Value, "|")
            valn(1, 1) = Left(Cells(1, 1).Value, 4)
            valn(1, 2) = dt(9)
            For L = 3 To 8
                valn(1, L) = Cells(L, 1)
            Next
            ImpName = Application.ActiveWorkbook.Name
    Workbooks(ImpName).Close SaveChanges:=False
    Windows("MegaSena-Scrap-Forum-ModeloA-v1.xlsb").Activate
    Sheets("ultimo").Range("a1:H1") = valn
        ActiveWorkbook.Save

    End Sub

continua funcionando para o numero do sorteio
valn(1, 1) = Left(Cells(1, 1).Value, 4)

dt = Split(Cells(1, 1).Value, "</li><li>")
essa parte vai separar as partes que tem isso
dt(0) seria = 1703|3.186.292,13|<span class="num_sorteio"><ul><li>49
aí vc usaria o Right para pqgar o 49
dt(1) é o 03 puro
e daí por diante

 
Postado : 11/05/2015 11:18 am
(@gtsalikis)
Posts: 2373
Noble Member
 

Veja no anexo.

Usei a célula A2 como auxiliar, para limpar um pouco das informações, talvez ajude.

Abs

 
Postado : 11/05/2015 11:33 am
(@edcronos)
Posts: 1006
Noble Member
 

gtsalikis
o problema é que ele vai ter variação de amostragem sempre

começou aqui
viewtopic.php?f=10&t=15745
apesar da relutância acabei fazendo
aí na atualização da pagina já não deu mais certo

 
Postado : 11/05/2015 11:38 am
(@gtsalikis)
Posts: 2373
Noble Member
 

Eu não acompanhei o outro tópico. Porém, pelo que ele passou, os números que ele pegou (não sei como), estão dentro de códigos de html, na verdade, dentro de uma lista, que é identificada por "li". Então, o que fiz foi eliminar os caracteres da lista html.

Deixa ele testar, se não der certo, seria útil postar mais exemplos, pois se é programação, deve ter um padrão. (No caso, estou focando em achar um padrão não nos caracteres, mas no recurso html).

Abs

 
Postado : 11/05/2015 12:02 pm
(@edcronos)
Posts: 1006
Noble Member
 

ele pega abrindo a pagina pelo proprio excel

seria legal se existisse um padrão
eu pego os resultados das loterias, pelo proprio site pelo internet explore "algo que ele não quer"
eu formulei um codigo conjunto para todas elas,
mas mesmo elas tem algum diferencial
e o da time mania sempre dá algum tic nervoso e do nada funciona
como as outra funcionam eu não sei se é no codigo ou na pagina

 
Postado : 11/05/2015 12:16 pm
(@xman2000)
Posts: 0
New Member
Topic starter
 

uma pergunta
vc vai mudar o metodo cada vez que a pagina retornar de maneira diferente?
vc viu que eu tinha feito um codigo que funcionava perfeitamente, mas na atualização a posição dos dados mudaram
agora tem essa sequencia de caracteres,
não é dificil fegar os valores dessa sequencia,
mas será que ela vai continuar?

Oi Edcronos e Gilmar, grato a ambos.
vou passar pra vc o anexo daquele sistema de pegar o valor no site pelo excel só pra vc ter base. Eu consegui fazer ele puxar o resultado na mesma PastadeTrabalho.

do jeito que estou fazendo, acho que nao vai haver problema de mudarem o site desde que nao seja grande a mudança.
isso só vou ter certeza com o tempo, mas, creio que só vai haver diferença nos caracteres que compõe o valor do premio e que estão antes dos numeros sorteados, e por isso mesmo, eu pegando a quantidade de caracteres de uma palavra que vou usar como refencia e que vem depois dessa parte variavel dos caracteres, aí conto a quantidade de caracteres que vem depois dessa palavra até a primeira dezena sorteada.

tempos atras tive uma questao parecida e consegui, e vou até olhar ela com calma pra ver se ajuda nesta, pois geralmente o pessoal usa colunas auxiliares e eu gosto de fazer formulas diretas, que ficam mais complexas.

vou olhar com calma os trabalhos de voces e respondo depois.
abraço

 
Postado : 11/05/2015 1:28 pm
(@xman2000)
Posts: 0
New Member
Topic starter
 

Olá pessoal,
veja bem,
o codigo do Edcronos eu ainda nao sei implementar.
a planilha do Gilmar ficou quase igual o que preciso, e eu alterei o codigo pra nao precisar de coluna auxiliar, mas, ainda nao consegui.
a questão envolve, alem das funções que o Gilmar usou, a função ContarCaracteres.
.
Ressalto: precisa da função "EXT.TEXTO+NÚM.CARACT+LOCALIZAR"
tentativa, retorna vazio:
"EXT.TEXTO(A1;NÚM.CARACT(A1);PROCURAR("sorteio";A1))"
.
ou seja, preciso que na mesma única formula, contar quantos caractres são até o final ou começo da palavra "sorteio" (tudo minusculo) e na mesma formula, pegar esse valor e adicionar o valor dos caracteres existentes após a palavra "sorteio" até o inicio da 1a dezena sorteada para entao pega-la.
vejam na COLUNA G as formulas que testei. Na celula G46 especialmente, do arquivo FormulaRetornaValorDezena-v21.rar que postei no post anterior.

segue anexa planilha do Gilmar que alterei pra fazer direto. Ela NÃO é uma versao nova do meu post anterior, apenas pra mostrar fazer uma formula direta.

 
Postado : 11/05/2015 2:09 pm
(@xman2000)
Posts: 0
New Member
Topic starter
 

a função Procurar é diferente da Localizar, porém, faço tentativa com ambas, ambas estão no arquivo exemplo do post anterior: "FormulaRetornaValorDezena-v21.rar"

 
Postado : 11/05/2015 2:19 pm
(@xman2000)
Posts: 0
New Member
Topic starter
 

O problema na formula do Gilmar, é que não há como saber previamente a quantidade de caracteres iniciais, ela é variável e a formula dele nao "pega" isso, nela funciona porque nós é que contamos "manualmente" e colocamos.
No exemplo abaixo, a quantidade destacada (10 e 19) com a palavra "este" na formula dele e na que alterei pra ficar direta:
.
"=EXT.TEXTO($A$2;LOCALIZAR("num_sorteio";$A$2)+10(este)+(COL()*2);2)"
"=EXT.TEXTO($A$1;LOCALIZAR("num_sorteio";$A$1)+19(este)+(COL()*2);2)"
.
penso que se juntar essa formula mais a formula abaixo daria certo:
.
"=DIREITA(B2;NÚM.CARACT(B2)-LOCALIZAR("@";B2))"
" http://www.feranoexcel.com/2015/02/como-extrair-partes-de-celulas-texto-parte-2/"

 
Postado : 11/05/2015 2:29 pm
(@xman2000)
Posts: 0
New Member
Topic starter
 

Olá Colegas!
ainda nao entendo a parte final desta formula do Gilmar (sou fraco mesmo): "+10+(COL()*2);2)"
.
"EXT.TEXTO($A$2;LOCALIZAR("num_sorteio";$A$2)+10+(COL()*2);2)"

eu tentei juntar as duas formulas, mas dá erro. Tentei matricial e tambem nao funcionou.
.
"EXT.TEXTO($A$2;NÚM.CARACT(A2);LOCALIZAR("sorteio";$A$2))+(COL()*2)"
.
quando tiver tempo vou olhar a minha matricial para agendamento que funciona, mas nao sei se é parecido o caso.

 
Postado : 11/05/2015 2:51 pm
(@xman2000)
Posts: 0
New Member
Topic starter
 

kkkkkkk!!!!
a formula do Gilmar funcionou perfeitamente! eu que tava viajando na maionese.

mas ainda vou deixar o topico aqui porque preciso ainda do vba pra esse caso, mesmo objetivo.
o Edcronos já deu uma otima dica do Split mas nao sei implementar ainda.

vou estudando enquanto alguem dá uma luz.
gostaria ainda de ajuda pra isso.

saudações a todos colegas!

 
Postado : 11/05/2015 7:47 pm
(@xman2000)
Posts: 0
New Member
Topic starter
 

Olá Gilmar,

mesmo já funcionando, gostaria ainda de melhorar essa formula pra pegar a quantidade de caracteres existente entre a palavra "num_sorteio" e a primeira dezena tudo direto na formula, pra nao ter de colocar "manualmente".

essa quantidade de caracteres referida é 19caracteres na minha planilha, e depois, a titulo de curiosidade, é de 9nove caracteres entre cada dezena.

minha justificativa é que esse conhecimento serve pra muitas outras ocasiões, como daquela vez que voce me ajudou no sistema de agendamento, mas nao serve pra este caso.

observe que não precisa da sua coluna auxiliar, que entendi bem, serve quando a situação é mais complexa.

a formula que estou usando agora é:
1a. dezena:
"=EXT.TEXTO($A$1;LOCALIZAR("num_sorteio";$A$1)+19+(COL()*2);2)" (quero pegar o 19 automaticamente)
2a. dezena:
"=EXT.TEXTO($A$1;LOCALIZAR("num_sorteio";$A$1)+28+(COL()*2);2)"
3a. dezena:
"=EXT.TEXTO($A$1;LOCALIZAR("num_sorteio";$A$1)+37+(COL()*2);2)"
e daí vai de 9 em 9 caracteres.

 
Postado : 11/05/2015 8:42 pm
(@xman2000)
Posts: 0
New Member
Topic starter
 

Creio que precisa incluir a função "NÚM.CARACT", por exemplo:

"EXT.TEXTO + NÚM.CARACT + LOCALIZAR + COL"

ou então

"EXT.TEXTO + LOCALIZAR + NÚM.CARACT + COL"

 
Postado : 11/05/2015 9:19 pm
Página 1 / 4