Ir ao conteúdo
  • Cadastre-se

Fórmula para nomes aleatórios


Ir à solução Resolvido por Visitante,

Posts recomendados

Olá, queria saber se é possível no Excel fazer uma fórmula que tenha N% de chance de cair tal nome, por exemplo:

 

-- A      B      C

1  Bola

2  Carro

3  Joia

 

 

Imaginando que a bola (A1) tem 10% de chance, o carro (A2) tem 30% de chance e a joia (A3) tem 60% de chance, a ideia é criar um botão ou célula que ao clicar ou dar um enter faz com que gere um dos nomes aleatoriamente mas com a maior probabilidade de cair joia e a menor a bola.

 

Sabendo fazer isso acho que consigo criar um BD onde coloco um nome em uma célula e na base ele busca na tabela onde está aquele nome outros nomes aleatórios tipo digito carro dai me vem ou ford, ou mercedes, ou chevrollet, etc. com cada um sua probabilidade de cair mais vezes ou menos vezes.

 

ou senão faço tudo no Excel mesmo e já era.

 

Obrigado.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Boa noite Yuri

Sortear nomes aleatoriamente é relativamente fácil, mas com essa questão de probabilidade já complica.

Para facilitar anexe uma planilha de exemplo, o mais real possível, para evitar que depois você encontre dificuldade para aplicar na tua planilha.

[]s

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Patropi, obrigado pela atenção! Faz literalmente anos que alguém responde alguma dúvida minha em um tópico neste fórum, valeu mesmo! =)

 

Então, eu tenho essa ideia mas não sei como colocar no papel isso, eu só consigo imaginar a linha lógica nisso mas não sei como posso implementar no excel. É +/- assim:

 

Imagine que criou uma tabela dentro do excel com o nome "Carros" com dados de nomes de Carros

 

Tabela Carros

Ford

Volks Wagen

Fiat

Mercedes

Toyota

Mitsubishi

 

dai você vai digitar a palavra "Carros" na célula A1 e aleatoriamente ele vai dar um dos nomes que contém dentro desta tabela jogando este resultado em A2 ou qualquer célula; até ai é fácil de se fazer, mas no caso eu queria adicionar a probabilidade. Por exemplo:

 

Tabela Carros

Ford 10%

Volks Wagen 40%

Fiat 24%

Mercedes 16%

Toyota 2%

Mitsubishi 8%

 

onde a probabilidade de todas as vezes que eu digitar na célula A1 a palavra Carro traga a resposta na célula A2 mais vezes Volks Wagen e menos vezes Toyota; seguindo uma linha lógica ficaria +/- assim:

 

Se "A1" for = (Carros) então escolher aleatoriamente um (valor) da Tabela "Carros" em A2

 

como disse é fácil fazer isso pois já vi em vários sites como se faz isso mas não com probabilidades. Imaginando que tenho várias tabelas carros, motos, caminhões, bicicletas, etc. e cada vez que digito um desses nomes das tabelas ele me traz dentro dessas tabelas aleatoriamente com a maior probabilidade de cair uns nomes e outros com menor probabilidade.

 

complicado minha ideia né? =)

 

acredito que com alguma linguagem de programação deve ter algum algorítimo que faça isso mas não sei programar estou começando meu curso de ciência da computação e não vi nada praticamente =D

Link para o comentário
Compartilhar em outros sites

Veja se ajuda.
A fórmula abaixo foi montada com base no seu exemplo do post #1.
Lembrando, para recalcular a fórmula: apertar F9 ou inserir algo em qualquer célula ou apertar "Delete".
 

=SE(INT(ALEATÓRIO()*100)<10;"bola";SE(INT(ALEATÓRIO()*100)<40;"carro";"jóia"))

ou para versões do XL a partir de 2007

=SE(ALEATÓRIOENTRE(0;99)<10;"bola";SE(ALEATÓRIOENTRE(0;99)<40;"carro";"jóia"))
Link para o comentário
Compartilhar em outros sites

@osvaldomp

 

é bem por ai mesmo, só que eu preciso tirar os dados de uma tabela ao digitar um valor em uma célula e gerar os dados em outra célula igual o que eu disse no segundo comentário, pois assim posso ter várias tabelas só digitando o nome delas imagina ter várias dessas formulas espalhadas e ficar dando F9? XD

Link para o comentário
Compartilhar em outros sites

... imagina ter várias dessas formulas espalhadas e ficar dando F9? XD

 

Apertar o F9 foi uma sugestão para efeitos de testar as fórmulas que postei... apesar que, via F9 seria apenas um toque no teclado, ao passo que digitar "carros", por exemplo, implicaria 7 toques...ainda, independente da quantidade de fórmulas que haja na planilha basta UM TOQUE EM F9 para recalcular TODAS as fórmulas que contenham a função ALEATÓRIO... ;)

 

 

 

1. sem utilizar células auxiliares

=PROC(ALEATÓRIOENTRE(0;99);{0;2;10;20;36;60};{"Toyota";"Mitsubishi";"Ford";"Mercedes";"Fiat";"Volkswagen"})

ou

=SE(ALEATÓRIOENTRE(0;99)<2;"Toyota";SE(ALEATÓRIOENTRE(0;99)<10;"Mitsubishi";SE(ALEATÓRIOENTRE(0;99)<20;"Ford";SE(ALEATÓRIOENTRE(0;99)<36;"Mercedes";SE(ALEATÓRIOENTRE(0;99)<60;"Fiat";"Volkswagen")))))

 

 

2. utilizando PROCV na tabela abaixo colocada em A10:B15

=PROCV(ALEATÓRIOENTRE(0;99);A10:B15;2)

TABELA CARROS    

0    Toyota

2    Mitsubishi

10    Ford

20    Mercedes

36    Fiat

60    VolksWagen

 

 

 

3. utilizando a célula A1 como referência (carros, motos, caminhões, bicicletas, etc.)

uma solução é montar uma tabela para cada um desses itens e fazer um PROCV condicional:

SE(A1="carros"; PROCV(ALEATÓRIOENTRE(); na tabela "carros");SE(A1="motos";PROCV(ALEATÓRIOENTRE(); na tabela "motos");...

 

Link para o comentário
Compartilhar em outros sites

@Patropi

 

Obrigado, agora eu vi onde que eu estava errando =)  será que é possível ao invés de apertar em F9 clicar em um botão?

 

eu sei que é besteira mas só por curiosidade mesmo, tentei fazer aqui mas minha macro fica dando erro ou estou fazendo algum processo errado...

 

qualquer coisa encerramos por aqui mesmo se for algo complicado de explicar e fazer XD

 

Obrigado.

Link para o comentário
Compartilhar em outros sites

@osvaldomp

 

deu certo! Eu só não compreendia porque de vez em quando, quando vai atualizando a planilha ele não acha o valor e fica como #N/D mas assim que atualiza de novo ele some e vez ou outra aparece em qualquer uma das formulas que você postou tanto a planilha que eu montei quanto a que o @Patropi montou, ambas de vez em quando da esse valor não determinado #N/D

 

Dei uma pesquisada no site da microsoft e vi isso http://office.microsoft.com/pt-br/excel-help/procv-HP005209335.aspx percebi que estava faltando colocar no final da sintaxe "verdadeiro" ou "falso", após isso coloquei verdadeiro e foi =)

 

Edit: Parece que só funciona na primeira sintaxe, nas outras não funciona no caso da planilha do @Patropi

 

valeu pessoal! vou criar outra resposta com a compilação de o que vocês 2 disseram e marcar como resolvido que fica fácil para alguém identificar caso esteja com a mesma dúvida que a minha, pode ser?

Link para o comentário
Compartilhar em outros sites

  • Solução

 

Eu só não compreendia porque de vez em quando, quando vai atualizando a planilha ele não acha o valor e fica como #N/D

A fórmula retorna Não Disponível se o valor gerado pela função ALEATÓRIO for menor do que o menor valor da tabela. Como a função ALEATÓRIO, na forma que está na fórmula, gera números de 0 a 99, então ao gerar 0 ou 1 causará erro #N/D se em A1 estiver MOTOS, CAMINHÕES ou BICICLETAS, mas não gerará erro se em A1 estiver CARROS. Ou seja, se A1=MOTOS a fórmula retornará erro se o valor gerado for menor que 2, se A1=CAMINHÕES a fórmula retornará erro se o número gerado for menor que 3 e se A1=BICICLETAS gerará erro se o número gerado for menor que 10. Aplicando nas demais tabelas o modo que utilizei para montar a tabela CARROS não ocorrerão erros, se for mantido o intervalo da ALEATÓRIO de 0 a 99.

 

mas assim que atualiza de novo ele some e vez ou outra aparece em qualquer uma das formulas que você postou tanto a planilha que eu montei quanto a que o @Patropi montou, ambas de vez em quando da esse valor não determinado #N/D

Na tabela que montei (CARROS) isso não ocorre.

 

Dei uma pesquisada no site da microsoft e vi isso http://office.microsoft.com/pt-br/excel-help/procv-HP005209335.aspx percebi que estava faltando colocar no final da sintaxe "verdadeiro" ou "falso", após isso coloquei verdadeiro e foi =)

Edit: Parece que só funciona na primeira sintaxe, nas outras não funciona no caso da planilha do @Patropi

Não estava faltando. Leia novamente o tutorial (eu não li) pois lá deve estar anotado que se omitido o parâmetro é equivalente a VERDADEIRO ou 1. Que é a forma indicada para este caso, pois com o parâmetro V ou 1 ou omitido o PROCV busca o valor exato ou o maior menor que o exato. Ao passo que o FALSO ou 0 busca somente o exato.

 

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois...
Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...