Página 1 de 1
Obter Valores Aleatórios considerando Variáveis
Enviado: 26 Mai 2022 às 00:23
por SergioZiller
Boa noite, pessoal!!!
Tenho uma planilha com os seguintes campos:
Coluna A - Data
Coluna B - Hora
Coluna C - Valor Observado
A planilha já está ordenada de forma que, primeiramente, vem todas as observações das 9:00 dos dias 01/01 dos anos que consegui obter valores. Na sequência, as observações das 10:00, até chegar ao meio dia, e passar para o próximo dia.
O que eu queria é montar uma espécie de série de dias simulados, capturando diferentes valores para os horários, de maneira aleatória, mas sendo um dos valores observados.
Por exemplo, poderia ter um dia 01/01 que o valor das 09:00 fosse o do dia 01/01/2021, o valor das 10:00 fosse do dia 01/01/2018, o das 11:00 fosse o de 01/01/2017 e o das 12:00 o de 10/01/2015.
A ideia é fazer essas combinações, considerando a escolha aleatória de um dos valores observados, para 100 dias simulados, preferencialmente utilizando VBA.
Alguém sabe como me ajudar?
Obrigado!!!
Re: Obter Valores Aleatórios considerando Variáveis
Enviado: 26 Mai 2022 às 09:06
por osvaldomp
Olá, @SergioZiller .
Segue uma ideia por fórmulas. Veja se aproveita.
para replicar datas aleatoriamente (somente no intervalo com datas 01/01) ~~~> =ÍNDICE(A$3:A$33;ALEATÓRIOENTRE(3;33))
Para replicar horas e valores altere na fórmula a coluna de A para B e para C, respectivamente.
Se você quiser fixar a data, por exemplo, então repita a data manualmente e utilize as fórmulas para obter horas e valores de forma aleatória.
Re: Obter Valores Aleatórios considerando Variáveis
Enviado: 26 Mai 2022 às 14:37
por SergioZiller
Oi @osvaldomp !
Muito obrigado pela ajuda!
Mas ainda não é exatamente isso que eu precisava... Deixa eu explicar melhor:
Eu quero formar dias simulados, considerando as observações que já tenho. Deixa eu dar um exemplo mais curto. Considere que eu tive as seguintes observações para o dia 01.01:
Data Hora Observação
01/01/2021 9:00 22,861
01/01/2013 9:00 23,443
01/01/2017 9:00 53,241
01/01/2020 9:00 59,576
01/01/2021 9:00 67,724
01/01/2018 9:00 81,49
01/01/2016 9:00 120,325
01/01/2022 9:00 320,776
01/01/2021 10:00 156,897
01/01/2013 10:00 182,026
01/01/2017 10:00 320,862
01/01/2016 10:00 444,919
01/01/2020 10:00 565,228
01/01/2019 10:00 684,424
01/01/2018 10:00 720,799
01/01/2021 11:00 395,963
01/01/2013 11:00 530,167
01/01/2022 11:00 1059,683
01/01/2017 11:00 1249,434
01/01/2016 11:00 1253,477
01/01/2020 11:00 1452,801
01/01/2019 11:00 1513,281
01/01/2018 11:00 1572,738
01/01/2021 12:00 671,775
01/01/2022 12:00 1087,217
01/01/2013 12:00 1125,715
01/01/2016 12:00 1674,236
01/01/2017 12:00 2141,058
01/01/2020 12:00 2247,278
01/01/2019 12:00 2331,103
01/01/2018 12:00 2380,555
Eu preciso gerar dias simulados, pegando observações aleatórias dentro dos horários e ai somando-as.
Por exemplo, o dia simulado 01 seria formado pela soma entre a busca aleatória de um valor observado para as 9:00, com a soma de outro valor aleatório observado entre as 10:00, outro, às 11:00 e por fim o meio dia.
Uma coisa que tem me complicado é que esse exemplo que estou dando é só um recorte da tabela, na verdade vou utilizar os valores, hora a hora, desde as 9:00 até as 20:00, e para cada um dos dias do ano.
Vou gerar 100 dias simulados, para cada um dos dias do ano, como o que exemplifiquei, e por esses motivos, acredito que vou precisar fazer por VBA, senão a planilha ficaria muito pesada...
Muito obrigado!!!
Re: Obter Valores Aleatórios considerando Variáveis
Enviado: 29 Mai 2022 às 12:30
por osvaldomp
Olá, @SergioZiller .
O pouco que entendi até agora é que você quer montar uma tabela (ou seriam várias tabelas?).
Mas os critérios que você deseja utilizar para montar a tabela estão confusos.
No seu primeiro post você comentou ~~~> "Por exemplo, poderia ter um dia 01/01 que o valor das 09:00 fosse o do dia 01/01/2021, o valor das 10:00 fosse do dia 01/01/2018, o das 11:00 fosse o de 01/01/2017 e o das 12:00 o de 10/01/2015."
Essa sua descrição dá a entender que a tabela seria montada escolhendo-se aleatoriamente datas de o1/jan de anos diferentes e associando a cada data um horário aleatório entre 9 e 12h, e também associando de forma aleatória um Valor . Porém a última data que você colocou no comentário já não obedece o critério, pois é 10/jan e não 01/jan.
Aí o critério que eu imaginei haver entendido não se aplica.
Já, no segundo post você introduziu uma novidade ao dizer sobre "soma" ~~~> "Por exemplo, o dia simulado 01 seria formado pela soma entre a busca aleatória de um valor observado para as 9:00, com a soma de outro valor aleatório observado entre as 10:00, outro, às 11:00 e por fim o meio dia."
Minha sugestão: monte manualmente uma tabela como exemplo, com cerca de 10 linhas com dados e explique com exatidão o passo a passo de como você quer que a macro monte a tabela.
Seguem abaixo algumas dúvidas básicas quanto aos critérios para montar a tabela.
Assim, para a macro montar a tabela, no arquivo que você disponibilizou, considerando os cabeçalhos Data, Hora e Valor em F1:H1:
1. a macro irá escolher de forma aleatória uma das datas da coluna A e colocá-la em F2, é isso?
2. supondo que a data escolhida seja 03/01/2020
3. como existem 4 horários para cada data, a macro irá colocar um deles (ou 9 ou 10 ou 11 ou 12:00) em G2, é isso ?
4. e em H2, qual Valor você quer colocar?
Qualquer Valor escolhido de forma aleatória dentre os valores que correspondam/não correspondam à data de F2 ?
Qualquer Valor escolhido de forma aleatória dentre os valores que correspondam/não correspondam ao horário colocado em G2 ?
Ou qualquer valor da coluna C da tabela independente da data em F2 e do horário em G2 ?
Ou ... ?
Aqui entra alguma "soma" ?
5. em seguida a macro irá colocar uma data em F3.
Essa data em F3 deverá ser igual à data antes colocada em F2? Deverá ser diferente? Poderá ser igual ?
6. em G3 a macro irá colocar um horário.
Esse horário deverá ser igual ao horário de G2? Deverá ser diferente? Poderá ser igual ?
7. e em H3, qual Valor você quer colocar?
Igual a H2 ? Diferente de H2 ?
Idem às dúvidas do item 4 acima.
Na questão 5 acima, se a data deverá se repetir, então suponho que a macro deverá repetir 3 vezes a data de F2, pois há 4 datas com 4 horários e 4 valores associados, é isso?
O ideal seria você montar uma tabela como exemplo e colocar na própria planilha as explicações para as dúvidas que comentei acima.