Função média personalizada Abaixo vamos olhar para um programa no Excel VBA que cria uma função definida pelo usuário que calcula a média de um intervalo selecionado aleatoriamente, excluindo um ou mais valores que são outliers e não deve ser calculada a média. As funções definidas pelo usuário precisam ser colocadas em um módulo. 1. Abra o Editor do Visual Basic e clique em Inserir, Módulo. 2. Adicione a seguinte linha de código: Function CUSTOMAVERAGE (rng As Range, lower As Integer. Superior As Integer) O nome da nossa função é CUSTOMAVERAGE. A parte entre os parênteses significa que damos Excel VBA um intervalo e duas variáveis Inteiro como entrada. Nomeamos nosso intervalo rng, uma variável Integer que chamamos menor e uma variável Integer que chamamos superior, mas você pode usar qualquer nome. 3. Em seguida, declaramos um objeto Range e duas variáveis do tipo Integer. Chamamos a célula do objeto Range. Uma variável Integer que chamamos total e uma variável Integer que chamamos count. Dim cell As Range, total As Integer. Count As Integer 4. Queremos verificar cada célula em um intervalo selecionado aleatoriamente (este intervalo pode ser de qualquer tamanho). No Excel VBA, você pode usar o loop For Each Next para isso. Adicione as seguintes linhas de código: Para cada célula Em rng Nota: rng e célula são escolhidos aleatoriamente aqui, você pode usar qualquer nome. Lembre-se de consultar esses nomes no restante do seu código. 5. Em seguida, verificamos para cada valor nesta faixa se ele cair entre os dois valores (inferior e superior). Se true, incrementamos o total pelo valor da célula e incrementamos a contagem por 1. Adicione as seguintes linhas de código ao loop. Se cell. Value gt lower E cell. Value lt upper Then total total cell. Value count count 1 End If 6. Para retornar o resultado dessa função (a média desejada), adicione a seguinte linha de código fora do loop. CUSTOMAVERAGE total 7. Não se esqueça de terminar a função. Adicione a linha: 8. Agora você pode usar esta função como qualquer outra função do Excel para calcular a média de números que estão entre dois valores. Como uma verificação, você pode excluir todos os valores que são inferiores a 10 e superior a 30 e usar a função média padrão no Excel para ver se o Excel calcula a mesma média que a nossa função média personalizada. Nossa função média personalizada funciona Nota: esta função está disponível somente neste livro. Estou tentando calcular uma média usando o Visual Basic 2010 e exibir essa média em uma janela de mensagem. Durante a depuração (comentando o código e tentando variáveis diferentes sendo enviadas para a caixa de mensagem como seqüência de caracteres) eu tenho a janela de mensagem para aparecer, mas sem dados retornados. Como eu tenho o código agora, eu não recebo nenhum erro, mas eu não posso mesmo obter a caixa de mensagem para aparecer. Basicamente, o programa tem o usuário digitar um número de livros que leram, que é então usado para calcular um total de pontos com base na quantidade de livros lidos. O exercício pede para manter uma média de todos os livros lidos. Perguntou 26 de fevereiro às 1: 37Thread: calcular uma média móvel simples rolagem usando VB 2010 calcular uma média móvel simples rolagem usando VB 2010 meu código produz uma variável com uma coluna de números como este: o que eu quero fazer é usar VB para dar Me a média para cada x número de linhas e, em seguida, armazenar que em outro var, e depois ter VB imprimir o máximo e MIN dessas médias. Por exemplo, se eu quiser calcular a média para cada 10 linhas: 5248 5249 5258 5251 5247 5246 5251 5228 5235 5251 5246.4 5241 5245.7 5240 5244.8 5247 5243.7 5259 5244.5 5261 5245.9 para que você possa ver que a partir do 10º registro a média é calculada Para os registros 1-10, então 2-11, então 3-12, então 4-13, então 5-14, então 6-15 O avg máximo é 5246.4 eo MIN é 5243.7 se eu quisesse obter a média para cada 5 Registros em vez disso (por exemplo), então a primeira média calcularia o avg de 1-5, então 2-6, então 3-7 e assim por diante qual é a melhor maneira de codificar isso para obter a média móvel e também encontrar o MAX E MIN de que a média Re: calcular uma média móvel simples rolagem usando VB 2010 Ele quis dizer exatamente o que ele disse: Ele tem uma única variável de seqüência com todos os valores nele separados por caracteres NewLine. Seria possível tomar essa variável e dividir na nova linha para quebrá-lo em uma série de números em uma matriz de seqüências de caracteres, que poderiam então ser convertidos em uma matriz de inteiros, mas eu ainda acho que seria melhor não ter isso Para começar. Minha assinatura habitual chato: Nada Re: calcular uma média simples rolagem móvel usando VB 2010 concordando com shaggy, id usar uma lista (de inteiro) em vez de uma variável com várias linhas contendo 1 inteiro por linha. A lista seria mais versátil que iria trabalhar com o código que eu postei. Eu tenho um loop para construir a seqüência de caracteres com os números que chegam como os dados são chamados agora o código se parece com isto: o problema com o código é 1) eu não consigo m60c para existir Fora do loop (só mostra o último valor, e 2) eu não sei como armazenar os dados como ele vem como uma série de inteiros se eu manualmente os valores de entrada onde está o código funciona, caso contrário ele não precisa mais introspecção obrigado pela resposta
No comments:
Post a Comment