Friday 15 September 2017

Ms Access Moving Average


Eu tenho uma produção de tabela que contém a seguinte estrutura: Eu tenho dados para cada representante de 112011 a 812013. O que eu quero ser capaz de fazer é criar uma média móvel de 12 meses começando 112012 para cada representante, da seguinte forma: onde cada linha representa A média móvel de 12 meses para o referido representante no horário indicado. Encontrei alguns exemplos que estavam vagamente próximos e os tentei sem sucesso. Parece que a adição de um grupo por componente representante é a principal saída de outros exemplos. Isso é tão longe quanto eu consegui: Essa consulta parece puxar uma média geral ou uma soma, uma vez que não há agrupamento na subconsulta correlacionada. Quando eu tento agrupar, recebo um erro que só pode retornar ao máximo uma linha. Solicitado 10 de outubro 13 em 14: 47Adicionar, alterar ou remover uma linha de tendência em um gráfico Aplica-se a: Excel 2010 Word 2010 Outlook 2010 PowerPoint 2010 Excel 2007 Word 2007 Outlook 2007 PowerPoint 2007 Mais. Menos Você pode adicionar uma linha de tendência ou uma média móvel a qualquer série de dados em uma tabela não ajustada, 2-D, área, barra, coluna, linha, estoque, xy (dispersão) ou gráfico de bolhas. Uma linha de tendência é sempre associada a uma série de dados, mas uma linha de tendência não representa os dados dessa série de dados. Em vez disso, uma linha de tendência é usada para descrever as tendências em seus dados existentes ou as previsões de dados futuros. Nota: Você não pode adicionar uma linha de tendência à série de dados em um gráfico empilhado, 3-D, radar, torta, superfície ou filhós. O que você quer aprender Aprenda sobre a previsão e mostra as tendências nos gráficos As tendências são usadas para exibir graficamente as tendências dos dados e ajudar a analisar os problemas de predição. Essa análise também é chamada de análise de regressão. Ao usar a análise de regressão, você pode ampliar uma linha de tendência em um gráfico além dos dados reais para prever valores futuros. Por exemplo, o gráfico a seguir usa uma linha de tendência linear simples que está prevendo dois trimestres à frente para mostrar claramente uma tendência para aumentar a receita. Você também pode criar uma média móvel, que suaviza as flutuações nos dados e mostra o padrão ou a tendência com mais clareza. Se você alterar um gráfico ou série de dados para que ele não possa mais suportar a linha de tendência associada, por exemplo, alterando o tipo de gráfico para um gráfico 3-D ou alterando a exibição de um relatório de tabela dinâmica ou relatório de tabela dinâmica associado, a linha de tendência não aparece mais No gráfico. Para dados de linha sem gráfico, você pode usar o preenchimento automático ou uma das funções estatísticas, como CRESCIMENTO () ou TREND (), para criar dados para linhas lineares ou exponenciais de melhor ajuste. Escolhendo o tipo de linha de tendência correto para seus dados Quando você deseja adicionar uma linha de tendência a um gráfico no Microsoft Office Excel, você pode escolher qualquer um desses seis tipos de tendência ou regressão diferentes: linhas de tendência lineares, linhas de tendência logarítmicas, linhas de tendência polinomiais, linhas de tendência de energia, exponencial Linhas de tendência ou linhas de tendência média móvel. O tipo de dados que você determina determina o tipo de linha de tendência que você deve usar. Uma linha de tendência é mais precisa quando seu valor R-quadrado está em ou perto de 1. Quando você ajusta uma linha de tendência para seus dados, o Excel calcula automaticamente o valor R-squared. Se você quiser, você pode exibir esse valor em seu gráfico. Linhas de tendência lineares Uma linha de tendência linear é uma linha reta de melhor ajuste que é usada com conjuntos de dados lineares simples. Seus dados são lineares se o padrão em seus pontos de dados se assemelhar a uma linha. Uma linha de tendência linear geralmente mostra que algo está aumentando ou diminuindo a uma taxa constante. No exemplo a seguir, uma linha de tendência linear ilustra que as vendas de refrigeradores aumentaram consistentemente ao longo de um período de 13 anos. Observe que o valor R-squared é 0.979, que é um bom ajuste da linha para os dados. Linhas de tendência logarítmicas Uma linha de tendência logarítmica é uma linha curvada de melhor ajuste que é usada quando a taxa de mudança nos dados aumenta ou diminui rapidamente e, em seguida, nivela para fora. Uma linha de tendência logarítmica pode usar valores negativos e positivos. O exemplo a seguir usa uma linha de tendência logarítmica para ilustrar o crescimento populacional previsto de animais em uma área de espaço fixo, onde a população se estabilizou à medida que o espaço para os animais diminuiu. Observe que o valor R-quadrado é 0.933, que é um ajuste relativamente bom da linha para os dados. Linhas de tendência polinomiais Uma linha de tendência polinomial é uma linha curva que é usada quando os dados flutuam. É útil, por exemplo, analisar ganhos e perdas em um grande conjunto de dados. A ordem do polinômio pode ser determinada pelo número de flutuações nos dados ou por quantas curvas (colinas e vales) aparecem na curva. Uma linha de tendência polinomial da Ordem 2 geralmente tem apenas uma colina ou vale. A ordem 3 geralmente tem uma ou duas colinas ou vales. A ordem 4 geralmente tem até três colinas ou vales. O exemplo a seguir mostra uma linha de tendência polinômica da ordem 2 (uma colina) para ilustrar a relação entre velocidade de condução e consumo de combustível. Observe que o valor R-squared é 0.979, que é um bom ajuste da linha para os dados. Linhas de tendência de energia Uma linha de tendência de energia é uma linha curvada que é usada com conjuntos de dados que comparam medidas que aumentam a uma taxa específica, por exemplo, a aceleração de um carro de corrida em intervalos de 1 segundo. Você não pode criar uma linha de tendência de energia se seus dados contiverem valores zero ou negativos. No exemplo a seguir, os dados de aceleração são mostrados ao plotar a distância em metros por segundos. A linha de tendência de energia demonstra claramente a crescente aceleração. Observe que o valor R-squared é 0.986, que é um ajuste quase perfeito da linha para os dados. Linhas de tendência exponencial Uma linha de tendência exponencial é uma linha curva que é usada quando os valores de dados aumentam ou caem a taxas cada vez maiores. Você não pode criar uma linha de tendência exponencial se seus dados contiverem valores zero ou negativos. No exemplo a seguir, uma linha de tendência exponencial é usada para ilustrar a quantidade decrescente de carbono 14 em um objeto à medida que envelhece. Observe que o valor R-quadrado é 0.990, o que significa que a linha se encaixa perfeitamente nos dados. Linhas de tendência médias em movimento Uma linha de tendência média móvel suaviza as flutuações nos dados para mostrar um padrão ou tendência com mais clareza. Uma média móvel usa um número específico de pontos de dados (definido pela opção Período), os em média e usa o valor médio como um ponto na linha. Por exemplo, se o Período for definido como 2, a média dos dois primeiros pontos de dados é usada como o primeiro ponto na linha de tendência média móvel. A média do segundo e terceiro pontos de dados é usada como o segundo ponto na linha de tendência, etc. No exemplo a seguir, uma linha de tendência média móvel mostra um padrão no número de casas vendidas ao longo de um período de 26 semanas. Adicione uma linha de tendência Em uma tabela não ajustada, 2-D, área, barra, coluna, linha, estoque, xy (dispersão) ou gráfico de bolhas, clique na série de dados para a qual deseja adicionar uma linha de tendência ou média móvel ou faça o seguinte Para selecionar a série de dados de uma lista de elementos do gráfico: clique em qualquer lugar no gráfico. Isso exibe as ferramentas de gráfico. Adicionando o Design. Layout. E Formatar guias. Na guia Formato, no grupo Seleção atual, clique na seta ao lado da caixa Elementos do gráfico e, em seguida, clique no elemento do gráfico que deseja. Nota: Se você selecionar um gráfico com mais de uma série de dados sem selecionar uma série de dados, o Excel exibirá a caixa de diálogo Adicionar Trendline. Na caixa de listagem, clique na série de dados que deseja e, em seguida, clique em OK. Na guia Layout, no grupo Análise, clique em Trendline. Siga um destes procedimentos: clique em uma opção de linha de tendência predefinida que você deseja usar. Nota: isto aplica uma linha de tendência sem permitir que você selecione opções específicas. Clique em Mais Opções da Tendência. E depois na categoria Opções Trendline, em TrendRegression Type. Clique no tipo de linha de tendência que você deseja usar. Cálculo médio móvel Cálculo médio móvel Cálculo médio móvel Estou tentando calcular uma média móvel para uma série de dados. Eu quero gerar a média móvel para cada ponto dentro dos dados, para mostrar em um gráfico. De qualquer forma, abaixo é um exemplo do MS Support. Eu segui para a carta, mas o meu não dá uma média móvel. Ele repete o mesmo ponto de dados repetidamente (o primeiro ponto de dados). Então, eu não acredito que a função é encontrar o início na linha MyRST. Seek, portanto, apenas retornando o primeiro ponto de dados. Finalmente (talvez fará isso realmente fácil) Estou confuso sobre como os índices funcionam. Eu pensei que você só poderia ter uma chave primária, mas, aparentemente, você pode criar várias restrições de campo. Tentei fazer isso com a seguinte consulta de definição de dados: ALTER TABLE Tabela1 ADD CONSTRAINT NoDupes UNIQUE (CurrencyType, TransactionDate) Desculpe o tamanho dessa publicação. Eu aprecio sua ajuda. A seguinte função de exemplo calcula as médias móveis com base em uma tabela com uma chave primária de campo múltiplo. Os valores semanais das moedas estrangeiras são utilizados para este exemplo. Para criar a função de exemplo, siga estas etapas: Crie a seguinte tabela e salve-a como Tabela1: Tabela: Tabela1 --------------------------- -------------- Nome do campo: Tipo de moeda Tipo de dados da chave primária: Tamanho do campo de texto: 25 Nome do campo: Tipo de dados principal do TransactionDate: Formato do DateTime: Data curta Nome do campo: Taxa Tipo de dados: moeda Locais decimais: 4 Veja a tabela na exibição da folha de dados e insira os seguintes valores: Taxa do tipo CurrencyType TransactionDate ------------------------------- ------------- Ien 8693 0.0079 Ien 81393 0.0082 Ien 82093 0.0085 Ien 82793 0.0088 Ien 9393 0.0091 Mark 8693 0.5600 Mark 81393 0.5700 Mark 82093 0.5800 Mark 82793 0.5900 Mark 9393 0.6000 Abra um novo módulo e digite o Seguintes funções: Função MAvgs (Períodos como Inteiro, StartDate, TypeName) Dim MyDB como DATABASE, MyRST Como conjunto de registros, MySum como Double Dim i, x Set MyDB CurrentDb () Definir MyRST MyDB. OpenRecordset (Tabela1) Em Error Resume Next MyRST. Index PrimaryKey x Periods - 1 loja ReDim (x) MySum 0 para i 0 Para x MyRST. MoveFirst MyRST. Seek, TypeName, StartDate Estas duas variáveis ​​devem estar na mesma ordem que os campos da chave primária em sua tabela. Store (i) MyRSTRate Se eu lt x Então StartDate StartDate - 7 O 7 aqui assume dados semanais 1 para dados diários. Se StartDate lt 8693 Então MAvgs Null: Exit Function 8693 é substituído pela data mais antiga dos dados em sua tabela. MySum Store (i) MySum Next I MAvgs Periodos MySum MyRST. Fechar End Function Crie a seguinte consulta com base na tabela Table1: Query: Query1 --------------------- ---------------------------------- Campo: FieldType Campo: TransactionDate Campo: Campo de Taxa: Expr1: MAvgs (3 , TransactionDate, CurrencyType) NOTA: Esta consulta gerará uma média móvel de três semanas dos dados da Taxa. Para calcular uma média móvel mais longa ou mais curta, altere o número 3 na coluna Expr1 de consultas para o valor que deseja calcular. Execute a consulta. Observe que você vê a seguinte média móvel de três semanas para cada moeda. Um valor nulo indica que não havia valores anteriores suficientes para calcular a média da semana. CurrencyType TransactionDate Rate Expr1 Mark 080693 0,5600 Mark 081393 0,5700 Mark 082093 0,5800 0,57 Mark 082793 0,5900 0,58 Mark 090393 0,6000 0,59 Iene 080693 0,0079 Ien 081393 0,0082 Ien 082093 0,0085 0,0082 Ien 082793 0,0088 0,0085 Ien 090393 0,0091 0,0088 RE: Cálculo médio móvel dhookom (Programador) 28 10 de junho 21:15 Quantos anos tem esse código. Não usa explicitamente DAO e não menciona que isso não funcionará com tabelas vinculadas. Dim MyDB como DAO. Database, MyRST como DAO. Recordset. Eu usaria uma subconsulta em vez de um conjunto de registros. Pode parecer algo como: SELECT CurrencyType, TransactionDate, Rate, (SELECT Avg (Rate) FROM Table1 B WHERE A. CurrencyType B. CurrencyType AND A. TransactionDate ENTRE B. TransactionDate - 14 AND B. TransitionDate) FROM Table1 A RE: Moving Cálculo médio que é realmente perfeito. Eu realmente aprecio sua ajuda. No entanto, o código que você deu é calcular a média móvel direta de 14 dias (colocando a média móvel no registro para o dia 1 da média, onde eu queria que ela fosse uma média retroativa, colocada no registro 14). Eu mudei um pouco para o seguinte e parece estar funcionando SELECT A. CurrencyType, A. TransactionDate, A. Rate, (SELECT Avg (Rate) FROM Table1 B WHERE A. CurrencyType B. CurrencyType AND B. TransactionDate ENTRE A. TransactionDate - 14 E A. TransactionDate) AS Expr1 FROM Table1 AS A Você pode ver, tudo o que fiz foi troca A para B na cláusula where. Esta é uma grande ajuda para mim e eu realmente aprecio isso. Eu não vi codificação assim antes, e, honestamente, eu realmente não entendo isso. Não sei como o SQL entende o que B e A são. Eu suponho que eles estão criando algum tipo de referência alternativa ao Table1. Se você pode dar qualquer orientação, eu realmente apreciaria isso. Além disso, talvez alguma referência ao material que eu possa observar Estou sempre muito animado para aprender algo novo sobre o VBASQL, e eu realmente aprecio sua ajuda RE: Cálculo médio móvel PHV (MIS) 29 Jun 10 12:22 entende o que B e A São eles são alias es RE: Cálculo médio móvel Obrigado, PHV. Já faz melhor sentido RE: Cálculo médio em movimento joshery420 (TechnicalUser) 6 Jul 10 15:06 Uau, nunca olhei para o SQL view antes. Supremamente útil. Estou tentando obter esse código para funcionar no meu próprio conjunto de dados e estou preso em uma questão específica. Pd2004, não tenho certeza se o novo código de subconsulta funcionou o mesmo que o seu código VBA antigo ou não, mas com meus dados ainda mostra a média contínua, mesmo que não haja dias suficientes para criar esse tamanho de média. por exemplo. Se eu estiver executando uma média contínua de 7 dias, o dia 1 mostra os mesmos dados na coluna 7DayAvg como faz na coluna diária de dados. O dia 2 mostra a média dos dias 1 e 2, etc. Vocês também sabem como consertar isso por acaso Também, obrigado pela excelente dica de código PHV. RE: Cálculo médio em movimento joshery420 (TechnicalUser) 6 Jul 10 15:08 Woops, obrigado a agradecer a dhookom pela dica de código, não PHV. Mas oi, obrigado a ambos. XD RE: Cálculo médio móvel Eu deixarei as melhores soluções para os profissionais aqui, mas você pode ver na minha publicação original como o exemplo da Ajuda da Microsoft tenta lidar com isso. Aqui está o código: Se StartDate lt 8693 Então MAvgs Null: Exit Function 8693 é substituído pela data mais antiga dos dados em sua tabela. Eles estão apenas saindo da função se a data não corresponder aos critérios. Não sei se você poderia incorporar algo assim no código de alias fornecido pelo dhookem. Eu não gosto da sua maneira de lidar com isso, e eu suspeito que o dhookem fornecerá uma solução muito mais elegante. Para os meus propósitos, o problema que está descrevendo não é uma preocupação, mas estarei interessado em ver quaisquer soluções. RE: cálculo da média móvel dhookom (Programador) 6 Jul 10 17:05 Você pode tentar usar IIf () para testar a contagem do número de registros. Cuidado: o código do bloco de notas não testado segue: SELECT A. CurrencyType, A. TransactionDate, A. Rate, IIF ((SELECT Count (Taxa) FROM Table1 C WHERE A. CurrencyType C. CurrencyType AND C. TransactionDate ENTRE A. TransactionDate - 14 AND A. TransactionDate) 7, (SELECT Média (Taxa) FROM Tabela1 B WHERE A. CurrencyType B. CurrencyType AND B. TransactionDate ENTRE A. TransactionDate - 14 AND A. TransactionDate), Nulo) AS Expr1 FROM Table1 AS A RE: Calculadora média móvel

No comments:

Post a Comment