Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
#70994
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!!!
Você não está autorizado a ver ou baixar esse anexo.
#70998
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.
#71009
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!!!
#71055
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.
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord