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

Dúvidas sobre cálculos, funções simples e aninhadas, fórmulas matriciais, etc.
  • Avatar do usuário
#50497
Pessoal, boa noite! Preciso criar uma fórmula de soma de valores consecutivos aleatórios, porém a contagem só deve ser feita se um valor pré-definido for atingido.

Exemplo: a planilha vai gerar valores +20 ou -10 numa sequência aleatória de mil colunas (cada número abaixo é uma coluna):

+20 -10 +20 +20 +20 -10 -10 +20 -10 -10 -10 +20 -10 -10 +20 +20 +20 -10 -10 +20 -10 -10 -10

Necessito criar duas fórmulas, uma para ganhos e outra para perdas.
A fórmula para ganhos só contabilizará +1 quando atingir um valor >= 60.
A fórmula para perdas só contabilizará +1 quando atingir um valor <= -30.

No exemplo dado, nas primeiras 5 colunas a soma dá +70, então contabilizaria +1 nos ganhos.

A soma deve zerar e começar a partir da 6ª coluna: -10 -10 +20 -10 -10 -10, essa soma daria -30, então contabilizaria +1 nas perdas.

A soma deve zerar e começar a partir da 12ª coluna: +20 -10 -10 +20 +20 +20, essa soma daria +60, então contabilizaria +1 nos ganhos. A soma dos ganhos agora é 2.

A soma deve zerar e começar a contagem a partir da 18ª coluna. E assim até completar as mil.

Observação: fato de ter sempre iniciado uma nova contagem num número múltiplo de 6 não tem a ver, foi pura coincidência.

Alguém tem noção de como eu posso desenvolver isso?
Ao menos dicas do que devo pesquisar.

Agradeço desde já a atenção de quem leu.
#50505
Fala, @Cass!
Beleza?

Vê se essa solução te atende.

- O algoritmo vai percorrer seu dataset em horizontal e ir somando os valores até encontrar às somas do seu critério; >= 60, <= -30.
- Quando encontrá-las, ele apontará abaixo do campo que bateu a conta essa soma até ali e, ainda embaixo, 1 para positivo e -1 para negativo (meramente intuitivo), reiniciando a soma a partir de então.
- E, por fim, ao percorrer todo o dataset, lhe retornará os pontos acumulados para Ganhos e Perdas.

Qualquer coisa, avisaê.
Abs.
Você não está autorizado a ver ou baixar esse anexo.
#50520
WillianVictor escreveu:Fala, @Cass!
Beleza?

Vê se essa solução te atende.

- O algoritmo vai percorrer seu dataset em horizontal e ir somando os valores até encontrar às somas do seu critério; >= 60, <= -30.
- Quando encontrá-las, ele apontará abaixo do campo que bateu a conta essa soma até ali e, ainda embaixo, 1 para positivo e -1 para negativo (meramente intuitivo), reiniciando a soma a partir de então.
- E, por fim, ao percorrer todo o dataset, lhe retornará os pontos acumulados para Ganhos e Perdas.

Qualquer coisa, avisaê.
Abs.
Fala Willian, primeiramente muito obrigado, cara!

Então, funcionou bem, porém a planilha original tem muitas linhas, assim eu precisaria armazenar esses valores da linha 2 e 3 (da planilha que me mandou) em outro lugar, para não ficar com uma quantidade absurda de linhas no documento.

A planilha é um simulador aleatório, então eu posso querer simular 100 cenários, 1.000 cenários ou, sei lá, 100.000 cenários, entende? Nesse caso, se houvesse milhares de linhas uma abaixo da outra (Simulação 1, 2, 3...) onde a macro armazenaria os valores da linha 2 e 3 da planilha que me mandou?

Outra coisa é que ao iniciar um novo cálculo, deveria apagar os valores da primeira contagem, pois, se se altera um valor da linha +20 -10 etc. todos os resultados gerados pela macro são diferentes.

Nesse print que fiz upload te mostro o problema que comentei acima. >> https://ibb.co/wzd7GVq

Estou te enviando uma cópia da ideia da planilha... Quero, a partir dessa contagem, tratar estatisticamente os dados gerados (Talvez gerar os valores da coluna ao final da milésima simulação. Coluna 1001 seriam os ganhos (>= 60), 1002 as perdas (>= -30), por exemplo: Em 10.000 simulações de 1.000 colunas, a média de ganhos foi de 538 e de perdas de 462. O máximo de ganhos foi 630, o mínimo foi X. O desvio padrão foi Z.

Observação: Cada vez que apertar F9 ele vai recalcular aleatoriamente... se alterar o % para mais, vai notar que resultados em vermelho aparecem menos. Se alterar para menos vai notar que resultados em verde aparecem menos.

Obrigado pela atenção!
Você não está autorizado a ver ou baixar esse anexo.
#50523
Cass escreveu:Fala Willian, primeiramente muito obrigado, cara!

Então, funcionou bem, porém a planilha original tem muitas linhas, assim eu precisaria armazenar esses valores da linha 2 e 3 (da planilha que me mandou) em outro lugar, para não ficar com uma quantidade absurda de linhas no documento.

A planilha é um simulador aleatório, então eu posso querer simular 100 cenários, 1.000 cenários ou, sei lá, 100.000 cenários, entende? Nesse caso, se houvesse milhares de linhas uma abaixo da outra (Simulação 1, 2, 3...) onde a macro armazenaria os valores da linha 2 e 3 da planilha que me mandou?

Outra coisa é que ao iniciar um novo cálculo, deveria apagar os valores da primeira contagem, pois, se se altera um valor da linha +20 -10 etc. todos os resultados gerados pela macro são diferentes.

Nesse print que fiz upload te mostro o problema que comentei acima. >> https://ibb.co/wzd7GVq

Estou te enviando uma cópia da ideia da planilha... Quero, a partir dessa contagem, tratar estatisticamente os dados gerados (Talvez gerar os valores da coluna ao final da milésima simulação. Coluna 1001 seriam os ganhos (>= 60), 1002 as perdas (>= -30), por exemplo: Em 10.000 simulações de 1.000 colunas, a média de ganhos foi de 538 e de perdas de 462. O máximo de ganhos foi 630, o mínimo foi X. O desvio padrão foi Z.

Observação: Cada vez que apertar F9 ele vai recalcular aleatoriamente... se alterar o % para mais, vai notar que resultados em vermelho aparecem menos. Se alterar para menos vai notar que resultados em verde aparecem menos.

Obrigado pela atenção!
@Cass, tranquilo. O que eu havia feito era apenas um exemplar, não havia nem posto para considerar ClearContents, por isso ele mantinha os valores anteriores.
Mas, enfim.. tá aí. Vê se essa solução lhe atende.

Apliquei as respectivas médias, máximos, mínimos e desvios padrão (desvio padrão com base em população e não em amostra) como você mencionou para Ganhos e Perdas. Que por fim, são inserir ao fim de cada linha simulada; ganhos e perdas.

Ponto de atenção!
1 - Inserir a linha inicial da simulação na célula B5 do arquivo.
Obs: coloque exatamente a linha do cabeçalho "Simulação", assim como eu deixei, por exemplo.
2 - Tudo abaixo do seu dataset de simulação será apagado, então é bom não manter dados abaixo dele.

Belezinha?
Qualquer coisa, avisaê.
Abs.
Você não está autorizado a ver ou baixar esse anexo.
#50525
WillianVictor escreveu:
Cass escreveu:Fala Willian, primeiramente muito obrigado, cara!

Então, funcionou bem, porém a planilha original tem muitas linhas, assim eu precisaria armazenar esses valores da linha 2 e 3 (da planilha que me mandou) em outro lugar, para não ficar com uma quantidade absurda de linhas no documento.

A planilha é um simulador aleatório, então eu posso querer simular 100 cenários, 1.000 cenários ou, sei lá, 100.000 cenários, entende? Nesse caso, se houvesse milhares de linhas uma abaixo da outra (Simulação 1, 2, 3...) onde a macro armazenaria os valores da linha 2 e 3 da planilha que me mandou?

Outra coisa é que ao iniciar um novo cálculo, deveria apagar os valores da primeira contagem, pois, se se altera um valor da linha +20 -10 etc. todos os resultados gerados pela macro são diferentes.

Nesse print que fiz upload te mostro o problema que comentei acima. >> https://ibb.co/wzd7GVq

Estou te enviando uma cópia da ideia da planilha... Quero, a partir dessa contagem, tratar estatisticamente os dados gerados (Talvez gerar os valores da coluna ao final da milésima simulação. Coluna 1001 seriam os ganhos (>= 60), 1002 as perdas (>= -30), por exemplo: Em 10.000 simulações de 1.000 colunas, a média de ganhos foi de 538 e de perdas de 462. O máximo de ganhos foi 630, o mínimo foi X. O desvio padrão foi Z.

Observação: Cada vez que apertar F9 ele vai recalcular aleatoriamente... se alterar o % para mais, vai notar que resultados em vermelho aparecem menos. Se alterar para menos vai notar que resultados em verde aparecem menos.

Obrigado pela atenção!
@Cass, tranquilo. O que eu havia feito era apenas um exemplar, não havia nem posto para considerar ClearContents, por isso ele mantinha os valores anteriores.
Mas, enfim.. tá aí. Vê se essa solução lhe atende.

Apliquei as respectivas médias, máximos, mínimos e desvios padrão (desvio padrão com base em população e não em amostra) como você mencionou para Ganhos e Perdas. Que por fim, são inserir ao fim de cada linha simulada; ganhos e perdas.

Ponto de atenção!
1 - Inserir a linha inicial da simulação na célula B5 do arquivo.
Obs: coloque exatamente a linha do cabeçalho "Simulação", assim como eu deixei, por exemplo.
2 - Tudo abaixo do seu dataset de simulação será apagado, então é bom não manter dados abaixo dele.

Belezinha?
Qualquer coisa, avisaê.
Abs.

Valeu Willian! Muito obrigado!

Se puder, peço que me explique 2 pontos:

1º Se eu tiver uma planilha com 10.000 linhas, o programa vai precisar gerar +10.000 linhas abaixo? (linhas nas quais é feita a soma >=60 ou <= -30). Se forem 30.000 linhas o programa vai precisar gerar +30.000? E assim sucessivamente?

2º Pq quando eu clico no botão "START" o programa começa a fazer várias simulações?

Desse modo acabei por perder a noção de quantas vezes foi simulado. Sem macro eu sabia que eram 13 (cada linha representa uma simulação), com macro ele fica alternando os valores de cada linha diversas vezes, então perco a noção de quantos valores foram simulados.

Escolher o número de simulações é crucial, afinal, uma coisa é a confiabilidade de simular 13 cenários, outra de simular 130, 1300 ou 13.000.

Obrigado novamente!
#50527
Bora lá, @Cass.
De antemão, utilize o arquivo que estou enviando agora e vou lhe explicar o porque em sequência.
Cass escreveu:1º Se eu tiver uma planilha com 10.000 linhas, o programa vai precisar gerar +10.000 linhas abaixo? (linhas nas quais é feita a soma >=60 ou <= -30). Se forem 30.000 linhas o programa vai precisar gerar +30.000? E assim sucessivamente?
Removi essa function de retornar os valores somados para lhe poupar tempo de processamento e armazenamento. Agora não mais haverá essa situação mencionada.
Cass escreveu: 2º Pq quando eu clico no botão "START" o programa começa a fazer várias simulações?

Desse modo acabei por perder a noção de quantas vezes foi simulado. Sem macro eu sabia que eram 13 (cada linha representa uma simulação), com macro ele fica alternando os valores de cada linha diversas vezes, então perco a noção de quantos valores foram simulados.
Isso acontece porque você está utilizando a fórmula ALEATÓRIOENTRE() e qualquer alteração que houver na planilha, fará com que esse cálculo seja refeito. Já que todas as fórmulas são acionadas por "Calcular Automático" quando há uma interação na planilha e como sua fórmula já diz, os números não são fixos, portanto, são feitas várias simulações consequentemente.
Incluí o processo START_MANUAL que irá tornar seu cálculo manual para que não haja várias simulações durante a execução do algoritmo (para que ele volte à ser automático, clique na guia Fórmulas e depois em Opções de Cálculo, e por fim, em Automático ou direto em Arquivos > Opções > Fórmulas > Cálculo da Pasta de Trabalho: Automático).


Eu deixei também o START_AUTO que mantém seu cálculo automático, caso você precise por algum eventual motivo.

Belezinha?
Qualquer coisa, avisaê.
Abs.
Você não está autorizado a ver ou baixar esse anexo.
#50529
WillianVictor escreveu:Bora lá, @Cass.
De antemão, utilize o arquivo que estou enviando agora e vou lhe explicar o porque em sequência.
Cass escreveu:1º Se eu tiver uma planilha com 10.000 linhas, o programa vai precisar gerar +10.000 linhas abaixo? (linhas nas quais é feita a soma >=60 ou <= -30). Se forem 30.000 linhas o programa vai precisar gerar +30.000? E assim sucessivamente?
Removi essa function de retornar os valores somados para lhe poupar tempo de processamento e armazenamento. Agora não mais haverá essa situação mencionada.
Cass escreveu: 2º Pq quando eu clico no botão "START" o programa começa a fazer várias simulações?

Desse modo acabei por perder a noção de quantas vezes foi simulado. Sem macro eu sabia que eram 13 (cada linha representa uma simulação), com macro ele fica alternando os valores de cada linha diversas vezes, então perco a noção de quantos valores foram simulados.
Isso acontece porque você está utilizando a fórmula ALEATÓRIOENTRE() e qualquer alteração que houver na planilha, fará com que esse cálculo seja refeito. Já que todas as fórmulas são acionadas por "Calcular Automático" quando há uma interação na planilha e como sua fórmula já diz, os números não são fixos, portanto, são feitas várias simulações consequentemente.
Incluí o processo START_MANUAL que irá tornar seu cálculo manual para que não haja várias simulações durante a execução do algoritmo (para que ele volte à ser automático, clique na guia Fórmulas e depois em Opções de Cálculo, e por fim, em Automático ou direto em Arquivos > Opções > Fórmulas > Cálculo da Pasta de Trabalho: Automático).


Eu deixei também o START_AUTO que mantém seu cálculo automático, caso você precise por algum eventual motivo.

Belezinha?
Qualquer coisa, avisaê.
Abs.
Eu conhecia a opção de Cálculo Automático, não reparei que ela estava ativada novamente.
Então, pra ver se entendi. Cada vez que clicava em Start ele simulava e cada valor novo gerava um novo cálculo automático até percorrer todo conjunto de dados?

START > Gera novo dado > que é recalculado automaticamente. Assim ele ficava atualizando tudo?

Por fim, minha dúvida foi esclarecida, agradeço bastante sua atenção. Vou marcar como resolvido.

Muito obrigado!
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