Notifications
Clear all

Loteria buscar Dezena a direita de palavra especifica

46 Posts
6 Usuários
0 Reactions
7,074 Visualizações
(@xman2000)
Posts: 178
Estimable 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
(@gtsalikis)
Posts: 2373
Noble Member
 

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.

Eu já fiz isso na minha primeira resposta. Basta vc ir lá e ver que eu estou usando 2 fórmulas, e não apenas uma.

A propósito, vc poderia clicar na mãozinha para agradecer, né?

Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.

Gilmar

 
Postado : 11/05/2015 10:05 pm
(@gtsalikis)
Posts: 2373
Noble Member
 

Vc queria tb em VBA?

Segue a mesma solução em VBA:

Sub localizar_dezenas_GT()

Dim i As Long, p As Long, texto As String

texto = Range("A1").Value
texto = Replace(texto, "/", "")
texto = Replace(texto, ">", "")
texto = Replace(texto, "<", "")
texto = Replace(texto, "li", "")
texto = Replace(texto, "ul", "")

p = InStr(texto, "num_sorteio") + 10

For i = 1 To 6
    Cells(6, i).Value = Mid(texto, p + i * 2, 2)
Next i

End Sub

Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.

Gilmar

 
Postado : 11/05/2015 10:16 pm
(@xman2000)
Posts: 178
Estimable Member
Topic starter
 

Olá Gilmar,

funciona maravilha a sua solução vba.
só nao consigo entender como voce faz pra especificar as celulas que irão receber o resultado. ???
gostaria também de conseguir implementar via o vba comando Split como o Edcronos postou, sem precisar usar o truque de substituir caracteres.

com relação à solução via formula direta, creio que uma possibilidade é incluir a função Mínimo pra pegar o primeiro valor mínimo apos a palavra "num_sorteio".

vejam no arquivo anexo como pega com o Mínimo o numero do meio.
veja no exemplo abaixo:

na celula D5 está: "boi muito56 gordo 98"

na celula E5 esta a formula: "=PROC(99^99;--("0"&EXT.TEXTO(D5;MÍNIMO(PROCURAR({0;1;2;3;4;5;6;7;8;9};D5&"0123456789"));LIN($1:$10003))))"

resultado: "56"

tentei seguinte formula também mas retorna vazio:
=EXT.TEXTO(A1;MÍNIMO(LOCALIZAR("exemplo";A1)+NÚM.CARACT(A1)+(COL()*2));2)

lembrando:
só nao consigo entender como voce faz no VBA pra especificar as celulas que irão receber o resultado. ???
gostaria também de conseguir implementar via o vba comando Split como o Edcronos postou, sem precisar usar o truque de substituir caracteres.

 
Postado : 12/05/2015 8:29 am
(@edcronos)
Posts: 1006
Noble Member
 

cara vc está enrolando tudo
afinal vc quer por formula ou vba?

a macro que o gilmar passou é relativamente melhor do que usar o split
isso pq ele exclui os caracteres e pega as dezenas em sequencia

essa parte aí especifica a colagem das dezenas

For i = 1 To 6
Cells(6, i).Value = Mid(texto, p + i * 2, 2)
Next i

cells é a mesma coisa que range mas é apenas para uma celula
e normalmente usado para colunas em modo numerico
o i vai de 1 até 6 pelo laço for next
1=A
2=B
3=c ...

então
Cells(6, i).Value
a primeira vez vai colar a dezena na linha 6 e coluna A

olha aconselho a pegar um curso qualquer dos mais basicos antes de tentar fazer algo tão avançado

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 : 12/05/2015 9:48 am
(@gtsalikis)
Posts: 2373
Noble Member
 

Eu especifico as células aqui:
Cells(6, i).Value
Onde 6 é a linha, e i é a coluna - que no caso está em um loop de 1 a 6 (coluna 1 a 6 = A ate F).

Sobre usar split, eu não vejo motivo para fazer isso. O split separa strings que tenham sempre um mesmo separador, e que sigam o mesmo padrão.

No teu caso, vc não tem um padrão de texto, e tb não tem um separador para as dezenas.

Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.

Gilmar

 
Postado : 12/05/2015 9:50 am
(@xman2000)
Posts: 178
Estimable Member
Topic starter
 

Olá Edcronos e Gilmar, e saudações a todos os colegas.

Edcronos, eu quero as duas maneiras, complicado agora explicar por quê.
Agora eu entendi legal o vba do Gilmar, grato pelas explicações.

Edcronos, estou residindo temporariamente numa cidadezinha que nao tem como contratar aulas particulares, e, na minha visão, existem mais usuarios do forum no mesmo nivel que eu. Vou sim estudar "do zero" quando puder. Sei que vc já me ajudou muito, considero, mas, acho que as vezes, quem nao pode ajudar, deixar que outros que queiram ajudem.

esse ultimo sistema de pegar os numeros da Mega na planilha (vc viu ele?) acho que é uma ótima ajuda pra quem tá desenvolvendo sistema de loteria, pois é facil e rapido, e nao trava.

meu desejo por formulas diretas e automatizadas (nao precisar colocar valores especificos manualmente) elevam muito o nível da tecnologia e é muito útil, só dá mais trabalho de fazer, mas eu já consegui antes.

na minha visão conseguir pegar os numeros da loteria de forma tao eficiente e utilizando um padrão, é um grande avanço.
existe sim um padrão que pode ser usado, nao sei se vc está vendo assim.

eu vou usar essa tecnologia pra fazer diversos scrapes de diversos site, então, acho muito útil.

gente, creio que só preciso do seguinte:
uma função pra pegar o numero de caracteres entre a palavra usada pra buscar (num_sorteio) e a primeira dezena (numero) sorteada.

então, talvez seja melhor uma função pra encontrar o primeiro valor numerico (1a Dezena sorteada) que vem depois da palavra buscada (num_sorteio) .

eu já tenho uma formula que encontra o valor numerico MINIMO de uma frase, preciso do 1oValorNumerico que vem depois de uma palavra buscada. Segue a função:

TEXTO EM H1:
"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>

FORMULA EM H2:
"PROC(99^99;--("0"&EXT.TEXTO(H1;MÍNIMO(PROCURAR({0;1;2;3;4;5;6;7;8;9};H1&"0123456789"));LIN($1:$10011))))"

RESULTADO EM H2: "1703"

eu nao sei como faz pra numa mesma formula, encontrar um valor e usa-lo, na mesma formula, pra fazer calculos, operações, manipulações.

segue o anexo de exemplo.

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

tem um monte de curso pela internet, livros e videos gratuitos
procure algo basico e vai avançando

eu não fiz curso
aprendi nos teste e pesquisas e os foruns

só não pode se acomodar
se tem uma função que não entende pesquise sobre ela e tente fazer mudanças e testes diferentes até entender como funciona

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 : 12/05/2015 11:35 am
(@gtsalikis)
Posts: 2373
Noble Member
 

gente, creio que só preciso do seguinte:
uma função pra pegar o numero de caracteres entre a palavra usada pra buscar (num_sorteio) e a primeira dezena (numero) sorteada.

Eu ja fiz isso no meu primeiro post, ja te respondi no segundo, e vc continua ignorando.

Foi com atitudes como essa que eu parei de te ajudar da outra vez.

Agora, repetindo, eu ja parei de te ajudar neste tópico também.

Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.

Gilmar

 
Postado : 12/05/2015 12:02 pm
(@xman2000)
Posts: 178
Estimable Member
Topic starter
 

minha mente, cansada, tem dificuldade de "começar do zero" como preciso, pra aprender as coisas fundamentais que não sei.

por isso, o que faço mais, é pegar exemplos e fazer tentativa e erro e pesquisas em sites de todo o mundo em todas as linguas, até chinês.

eu só posto no forum as dúvidas mais complexas. Até encontro as partes que preciso, tenho dificuldade de juntá-las sem erro.

eu evito postar muitas dúvidas, mas as que posto quero labutar nelas até torna-las algo muito eficiente, e aí ficam complexas, mas mesmo voces implementando pra mim, eu estudo pra entender mesmo depois de pronto.

o mais dificil de tudo é evitar atritos. Se as pessoas não enxergarem uma vantagem imediata acabam achando que nao vale a pena. Sei que todo mundo fica cansado, e mexe até de madrugada, como eu, mas, então, é deixar o topico aberto e ir fazendo aos poucos.

eu não vejo os colegas do forum como concorrentes, vejo como colaboradores, e minha intenção é um dia ganhar dinheiro dos milhoes de consumidores, e nao de colegas de profissão. Só nao devemos compartilhar sistemas mais completos, mas a tecnologia, sim. O que vai fazer diferença na competição é a criatividade no uso da tecnologia.

abraço a todos.
aguardo quem puder ajudar.

 
Postado : 12/05/2015 12:07 pm
(@xman2000)
Posts: 178
Estimable Member
Topic starter
 

gente, creio que só preciso do seguinte:
uma função pra pegar o numero de caracteres entre a palavra usada pra buscar (num_sorteio) e a primeira dezena (numero) sorteada.

Eu ja fiz isso no meu primeiro post, ja te respondi no segundo, e vc continua ignorando.

Foi com atitudes como essa que eu parei de te ajudar da outra vez.

Agora, repetindo, eu ja parei de te ajudar neste tópico também.

Olá Edcronos,

eu não entendi da primeira vez que voce disse e nao entendi nada agora também, não sei a que se refere.
juro que nao entendi o que ignorei.
mas tudo bem, voce já ajudou muito.
grato.

 
Postado : 12/05/2015 12:09 pm
(@xman2000)
Posts: 178
Estimable Member
Topic starter
 

.
.
a parte VBA está resolvida, agora falta melhorar a parte de formula conforme posts anteriores.

grato.
XMan2000.

 
Postado : 12/05/2015 2:28 pm
(@xman2000)
Posts: 178
Estimable Member
Topic starter
 

.
.
Olá Edcronos e Colegas!
.
Edcronos, achei o post a que vc se referiu, sobre a função SPLIT, consegui implementar e pegar quase todas as informações.
Tudo bem se vc nao puder ajudar mais.
.
Colegas,
a parte VBA está resolvida, agora falta melhorar a parte de formula conforme posts anteriores.
se a moderação quiser eu posso criar outro topico na seção de formulas.
.
grato.
XMan2000.

 
Postado : 12/05/2015 9:01 pm
(@luizhcosta)
Posts: 420
Honorable Member
 

Olá,

Supondo que a linha esteja na célula A1, cole a fórmula em outra célula:

=EXT.TEXTO(A1;PROCURAR(">";A1;PROCURAR(">";A1;PROCURAR(">";A1)+1)+1)+1;2)&"-"&EXT.TEXTO(A1;PROCURAR(">";A1;PROCURAR(">";A1;PROCURAR(">";A1;PROCURAR(">";A1;PROCURAR(">";A1)+1)+1)+1)+1)+1;2)&"-"&EXT.TEXTO(A1;PROCURAR(">";A1;PROCURAR(">";A1;PROCURAR(">";A1;PROCURAR(">";A1;52+1)+1)+1)+1)+1;2)&"-"&EXT.TEXTO(A1;PROCURAR(">";A1;PROCURAR(">";A1;PROCURAR(">";A1;70+1)+1)+1)+1;2)&"-"&EXT.TEXTO(A1;PROCURAR(">";A1;PROCURAR(">";A1;PROCURAR(">";A1;PROCURAR(">";A1;PROCURAR(">";A1;PROCURAR(">";A1;63+1)+1)+1)+1)+1)+1)+1;2)&"-"&EXT.TEXTO(A1;PROCURAR(">";A1;PROCURAR(">";A1;PROCURAR(">";A1;PROCURAR(">";A1;PROCURAR(">";A1;PROCURAR(">";A1;PROCURAR(">";A1;70+1)+1)+1)+1)+1)+1)+1)+1;2)

Não deixe espaços na fórmula.

 
Postado : 12/05/2015 9:03 pm
(@xman2000)
Posts: 178
Estimable Member
Topic starter
 

Olá Luiz e colegas,
Luiz, grato pela ajuda, vou responder pra vc no proximo post.

achei 2 links muito importantes sobre o assunto:
.
" https://br.answers.yahoo.com/question/index?qid=20121202055621AAXVmFZ"
"Como separar o número do texto no excel?"
.
" http://www.planilhando.com.br/forum/viewtopic.php?f=20&t=15431&p=79877"
"Extrair número específico com referência de texto."

 
Postado : 13/05/2015 8:24 am
(@xman2000)
Posts: 178
Estimable Member
Topic starter
 

Olá, Luizhcosta
Ótima sua formula, funcionou, muito grato!
.
mas ainda quero tentar pegar conforme abaixo:
Eu já consegui a formula de pegar a informação pelo Gilmar/ gtsalikis, mas quero melhora-la para que “pegue tudo direto”, pra não ter de contar mentalmente.
Usando como referencia a palavra "num_sorteio".
.
TEXTO NA CELULA A1:
‘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”
.
Formula atual na CELULA A8, EXEMPLO:
"=EXT.TEXTO($A$1;LOCALIZAR("num_sorteio";$A$1)+19(Pegar este valor 19)+(COL()*2);2)"
..
creio que só preciso do seguinte:
uma função pra pegar o numero de caracteres (19) entre a palavra usada pra buscar (num_sorteio) e a primeira dezena (numero 49) sorteada.
.
então, talvez seja melhor uma função pra encontrar o primeiro valor numerico (1a Dezena sorteada) que vem depois da palavra buscada (num_sorteio) (OBS: não é o valor minimo, é o primeiro numerico).
.
O problema na formula abaixo, é que não há como saber previamente a quantidade de caracteres iniciais, ela é variável a formula nao "pega" isso, nela funciona porque nós é que contamos "manualmente" e colocamos.
.
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"
.
No exemplo abaixo, as quantidades de caracteres destacadas (10 e 19) com a palavra "este" na primeira formula e na que alterei pra ficar direta, cuja quantidade eu desejo buscar automaticamente:
.
TEXTO EM A1:
"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>
.
FORMULAS
.
"=EXT.TEXTO($A$1;LOCALIZAR("num_sorteio";$A$1)+10(Pegar este valor 10)+(COL()*2);2)"
"=EXT.TEXTO($A$1;LOCALIZAR("num_sorteio";$A$1)+19(Pegar este valor 19)+(COL()*2);2)"
.
uma ideia é juntar essa formula acima mais a formula abaixo (Num_Caract e Localizar):
.
"=DIREITA(A1;NÚM.CARACT(A1)-LOCALIZAR("@"A1))"

 
Postado : 13/05/2015 9:13 am
Página 2 / 4